Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 20. 5. 2011, 17:49:47
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 |
#2 · Zasláno: 20. 5. 2011, 19:37:31
Mělo by fungovat getComputedStyle, ale nejsem si jistý podporou prohlížečů.
|
||
_es Profil |
#3 · Zasláno: 20. 5. 2011, 20:13:08 · Upravil/a: _es
nethor:
IE getComputedStyle nepodporuje, no namiesto toho v ňom funguje vlastnosť currentStyle .
|
||
Časová prodleva: 3 dny
|
|||
Chamurappi Profil |
#4 · Zasláno: 23. 5. 2011, 12:39:53
Reaguji na nethora:
Existuje nějaký rozumný důvod viditelnost zjišťovat? |
||
nethor Profil |
#5 · Zasláno: 23. 5. 2011, 15:58:41 · Upravil/a: nethor
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 |
#6 · Zasláno: 23. 5. 2011, 16:10:31 · Upravil/a: _es
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 |
#7 · Zasláno: 23. 5. 2011, 16:12:28
nethor:
Riešiš to zle. Prečo nepoužívaš element.className ?
|
||
nethor Profil |
#8 · Zasláno: 24. 5. 2011, 00:36:53 · Upravil/a: nethor
_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 |
#9 · Zasláno: 24. 5. 2011, 00:48:04
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 |
#10 · Zasláno: 24. 5. 2011, 00:50:13
__construct:
„Prečo nepoužívaš element.className?“ className jsem neznal. Díky. |
||
Časová prodleva: 13 let
|
0