Autor Zpráva
nethor
Profil
Existuje nějaký způsob jak zjistit document.getElementById(id).style.display, když je element nastylován externě?

Funguje mi to jen u inline stylu <div style='display: none;'> , ale inline stylování bych se rád vyhnul .
Ernie
Profil
Mělo by fungovat getComputedStyle, ale nejsem si jistý podporou prohlížečů.
_es
Profil
nethor:
IE getComputedStyle nepodporuje, no namiesto toho v ňom funguje vlastnosť currentStyle.
Chamurappi
Profil
Reaguji na nethora:
Existuje nějaký rozumný důvod viditelnost zjišťovat?
nethor
Profil
Chamurappi:
Ano, řeším rozbalovací (onclick) víceúrovňové menu - jako vnořený seznam.
Podle aktuální stránky se mají rozbalit příslušné položky.
V menu stylem : <ul class='d_block' id='u_1'> nebo <ul class='d_none' id='u_2'>
Navíc chci uživateli umožnit rozbalit, či zabalit příslušné položky pomocí JavaSriptu.
K tomu potřebuji znát hodnotu ...style.display , jinak může první click vyjít 'naprázdno'.

Obešel jsem to tím, že jsem pod menu doplnil script:

<script type="text/javascript" language="JavaScript">
<!--
document.getElementById('u_1').style.display = 'block';
...
..
.
//-->
</script>

Ten je tam čistě pro to, aby si hodnoty načetl i JS.

Nic lepšího mě nenapadlo.

getComputedStyle a currentStyle mi z hlediska kompatibility přpadá jako horší cesta.
_es
Profil
nethor:
Pri načítaní stránky predsa vieš, ktoré položky sú skryté a ktoré zobrazené, teda to zisťovať nepotrebuješ.
Po požiadavke na zobrazenie alebo skrytie predsa tiež vieš, ktoré položky si požadoval skryť alebo zobraziť, teda to tiež nepotrebuješ zisťovať.

getComputedStyle a currentStyle mi z hlediska kompatibility přpadá jako horší cesta.
Nič kompatibilnejšie na to, na čo si sa pýtal, asi dostupné nie je. Použi radšej iné spôsoby na rovnaký výsledok.
__construct
Profil
nethor:
Riešiš to zle. Prečo nepoužívaš element.className?
nethor
Profil
_es:
Pri načítaní stránky predsa vieš, ktoré položky sú skryté a ktoré zobrazené, teda to zisťovať nepotrebuješ.
Já to vím, ale JS to neumí zjistit z externího stylu. Takže neví, jestli má při clicku na rozbalovací/sbalovací ikonu
zobrazit nebo skrýt.
Tak mu to asi musím sdělit přes
document.getElementById('u_1').style.display = 'block';
Chamurappi
Profil
Reaguji na nethora:
Zkus si znovu přečíst odpovědi a zamyslet se nad nimi (zejména [#7] je dost popostrkující). My chápeme, co chceš udělat a že na to jdeš ze špatného úhlu, teď na to ještě musíš přijít sám :-)
nethor
Profil
__construct:
Prečo nepoužívaš element.className?
className jsem neznal.
Díky.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0