Autor Zpráva
tomas3333
Profil
Zdravim, mohol by som vediet, preco tento script nefunguje v IE a FF? V opere vsetko ok

  echo "<script type='text/javascript'>
          function show(id) {
            document.getElementById('id_'+id).style.display='block';
            document.getElementById('link_'+id).onclick='hide('+id+')';
          };
          
          function hide(id) {
            document.getElementById('id_'+id).style.display='none';
            document.getElementById('link_'+id).onclick='show('+id+')';
          };
        </script>";


...

          ."<a href='javascript:void(0)' id='link_".$array['id']."' onclick=\"show(".$array['id'].")\">".$array['title']."</a><br />"
          ."<div id='id_".$array['id']."' style='...'>".stripslashes($array['novinka'])."</div>";


aby som bol presny, novinka sa zobrazi, ale uz sa neskryje
tomas3333
Profil
tak som trochu patral a nasiel riesenie, zmenil som funkcie takto:

  echo "<script type='text/javascript'>
          function show(id) {
            document.getElementById('id_'+id).style.display='block';
            document.getElementById('link_'+id).onclick=function(){hide(id);};
          };  
          
          function hide(id) {
            document.getElementById('id_'+id).style.display='none';
            document.getElementById('link_'+id).onclick=function(){show(id);};
          };
        </script>";


ak by mi ale niekto dokazal vysvetlit, preco to takto funguje, bol by som rad
peta
Profil
tomas3333
mas rad slozitosti, budiz.
ja bych porovnal aktualni nastaveni a zmenil pouze display.
showhide(id)
obj = document.getElementById('id_'+id)
obj.style.display = b ? obj.style.display=='none' ? 'block' :'hide'
tomas3333
Profil
pravdou je, ze ma to tvoje riesenie nenapadlo, ale vyzera to dobre... to vsak nie je odpoved na otazku, preco to funguje takto:

...onclick=function(){show(id);};
centi
Profil
tomas3333
Viac by ťa malo zaujímať, prečo ti nefungovalo prvé riešenie: onclick = 'xxx'. Nefunguje preto, lebo onclick nie je v javascripte atribút elementu (ako napr. elm.id, ...), ale udalosť, ktorá ako svoju hodnotu očakáva referenciu na nejakú obslužnú funkciu a nie string. Je to podobný problém ako s atribútmi for, class a style v IE.

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: