Autor Zpráva
Bezy
Profil *
Mam trošku problém s tímto kódem

  <script type="text/javascript" language="JavaScript">
   <!--
     function Test(color) {
       var item = document.getElementById("myid");
       item.style.border = '5px solid ' + color;
     }     
   //-->
   </script>

  <body>
    <p id="myid">ahoj</p>
    <p onMouseOver="Test('red');" onMouseOut="Test('black');">Najed</p>
  </body>


a v CSS mám

p {
  border: 5px solid black;
}

p:hover {
  border: 5px solid red;
}


Pokud nad prvním elementem p najedu myší, aktivuje se p:hover a barva se změní. Poté najedu nad druhým elementem p, aktivuje se javascript, při opuštění zase, barva se vrátí na půovdní.
Jenže když potom najedu myší opět nad prvním elementem, tak se už nic nestane! Přitom by se podle p:hover opět měla změnit barva..
Co dělám špatně?
Chamurappi
Profil
Reaguji na Bezyho:
Tím „item.style.border“ měníš border nastavený atributem „style“ na příslušném elementu. Atribut „style“ má větší sílu, než selektor ve stylopisu skládající se z názvu elementu a pseudotřídy.

Chceš-li nějak měnit stav vzhledu elementu, měň jeho třídu (tedy item.className) a samotný vzhled pak určuj v CSS.
Kajman_
Profil *
Asi by fungovalo i

onMouseOut="Test('');"

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