Autor Zpráva
Silvershadow
Profil *
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
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
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 *
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
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.
peta
Profil
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>

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