Autor | Zpráva | ||
---|---|---|---|
Silvershadow Profil * |
#1 · Zasláno: 21. 5. 2011, 13:05:19
Ahoj, potřeboval bych u tohoto scriptu, aby po kliknutí na nápis "Klikněte na tento text pro zobrazení" zde ten text i zůstal a po opětovném kliknutí se zobrazená část schovala, u Firefoxu mi to takto jde, u Chrome po kliknutí to ""Klikněte na tento text pro zobrazení" zmizí
<span onclick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = 'Close'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Open'; }" type="button"><u>Klikněte na tento text pro zobrazení</u></span> |
||
Camo Profil |
#2 · Zasláno: 21. 5. 2011, 14:59:40 · Upravil/a: Camo
Ty vole. Toto som ešte nevidel. Je fakt nutné používať getElementsByTagName a to traverzovanie???
A to čo sa ti deje je myslím, preto, že používať metódu innerText, ktorá nemá plnú podporu. Ja by som použil getElementById a innerHTML, alebo rovno input a value. |
||
Witiko Profil |
#3 · Zasláno: 21. 5. 2011, 15:33:49 · Upravil/a: Witiko
Camo:
„Ty vole.“ No tak, tohle fórum je známé mimo jiné i slušností své komunity. :-) Silvershadow: Nezmizí text náhodou kvůli this.innerText = '';? This zde odkazuje na aktuální span s textem Klikněte na tento text pro zobrazení. |
||
Silvershadow Profil * |
#4 · Zasláno: 22. 5. 2011, 08:34:46
Já js neumím, tohle jsem našel na Googlu a použil, vás žádám o úpravu, tak aby to fungovalo i u Chromu a to "Klikněte na tento text pro zobrazení" nemizelo.
|
||
Witiko Profil |
#5 · Zasláno: 22. 5. 2011, 12:49:11 · Upravil/a: Witiko
Silvershadow:
Odmaž si ze scriptu oboje this.innerText = '';, pak by měl script při prvním kliknutí skrýt a při dalším opět zobrazit daný element. Text Klikněte na tento text pro zobrazení zůstane neměnný, což je trochu matoucí, když stejné tlačítko element i skrývá. Důvod, proč ti to funguje v Firefoxu je ten, že Firefox nativně neimplementuje proprietární HTMLElement.prototype.innerText getter Internet exploreru. Je možné jej doimplementovat, ale to tu nebude třeba. |
||
Časová prodleva: 5 dní
|
|||
peta Profil |
#6 · Zasláno: 27. 5. 2011, 14:01:27 · Upravil/a: peta
Silvershadow: "Já js neumím", to jsem vubec nevidel, jinak bych te odkazal na forum Prace a zakazky.
Priste link na jednoduchou ukazku, asi 10 minut jsem stravil tim, ze jsem se pokousel nasimulovat html kod. A pro zajimavost, je to jeden z prikladu na js, kdyby ses racil obtezovat zkouknout priklady na jakpsatweb. <script> function aaa(span) { var d1,d2; d1 = span.parentNode.parentNode.getElementsByTagName('div'); //alert(d1[1].className) d2 = d1 && d1[1] ? d1[1].getElementsByTagName('div') : null; if (d2 && d2[0]) { if (d2[0].style.display != '') { d2[0].style.display = ''; //span.innerHTML = ''; //span.value = 'Close'; //to bych tez zakomentoval, to nejspis ani nevyuzivas } else { d2[0].style.display = 'none'; //span.innerHTML = ''; //span.value = 'Open'; } } } </script> <div> div1 <div> div2 <span onclick="aaa(this)" type="button"><u>Klikněte na tento text pro zobrazení</u></span> <br/><span onclick="aaa(this)" type="button"><u>Zbal / Rozbal 222</u></span> <br/><span onclick="aaa(this)" type="button"><u>Zbal / Rozbal 333</u></span> </div> <div class="class1">div d1[1] <div>div d2[0] Detaily</div> </div> </div> |
||
Časová prodleva: 13 let
|
0