Autor Zpráva
NejakaLama
Profil *
Ahoj, používám script z http://www.jakpsatweb.cz/javascript/priklady/skryvani-odkryvani.html a přidal jsem si tam, aby se mi změnil i obrázek. Při prvním kliknutí se sice změní, ale když na text skryju, tak tam zůstane images/listheadactive.png. Na javascript jsem úplně levej, tak mi prosím poraďte


<script>
function zobrazSkryj(idecko){
  el=document.getElementById(idecko).style;
  al=document.getElementById(idecko+'img');

  el.display=(el.display == 'block')?'none':'block';
  al.src=(al.src == 'images/listheadactive.png')?'images/listhead.png':'images/listheadactive.png';
}
</script>

<img id="kat1img" src="images/listhead.png" onclick="zobrazSkryj('kat1')">
<div>Kategorie 1</div>
<div id="kat1" style="display: none;">aaa</div><br>

<img id="kat2img" src="images/listhead.png" onclick="zobrazSkryj('kat2')">
<div>Kategorie 2</div>
<div id="kat2" style="display: none;">aaa</div><br>
AM_
Profil
Na první pohled tam chybu nevidím. Skoro každý prohlížeč ale umí alespoň přibližně zobrazit, kde je chyb; IE8 - nastavení-vývojářské nástroje - docela dobrý JS debugger; opera i FF mají chybovou konzoli, kde chyby JS taky vidíš.
Nebo si před al.src=... dej alert(al.src);
Chamurappi
Profil
Reaguji na NejakouLamu:
(al.src == 'images/listheadactive.png')
Tento výraz nikdy nebude vyhodnocen jako pravda, protože se z vlastnosti src přečte absolutní adresa a ta se nebude rovnat té uvedené relativní.

Můžeš nastavovat obrázek také s ohledem na hodnotu el.display.
NejakaLama
Profil *
Děkuju, tohle mě teda nenapadlo, takže tohle už jde:

al.src=(el.display == 'block')?'images/listheadactive.png':'images/listhead.png';

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