Mam element div z identyfikatorem "przycisku". Próbuję zmienić jego tło, aby stał się niebieski po najechaniu kursorem (bez użycia selektora hover CSS).JavaScript addEventListener - za pomocą, aby utworzyć efekt mouseover?
var item = document.getElementById("button");
item.addEventListener("mouseover", func, false);
function func()
{
var item = document.getElementById("button");
item.setAttribute("style", "background-color:blue;")
}
To jednak tylko ustawia kolor elementu na niebiesko, gdy unoszą się, ale nie przywrócić go do białego po poruszam myszką z dala. Jak mogę to poprawić? (btw, mouseenter i mouseleave nie działają z tym pozornie).
Ahh ... świetnie! Mam obraz wewnątrz mojego div i uważa, że jako "na zewnątrz", jakikolwiek sposób, aby to zamaskować, więc wciąż myśli, że jest w pudełku? – antonpug
Tak, zdarzenia "mouseover" i "mouseout" wychwytują wszystkie zdarzenia również od dzieci (i spiskują). W swoich funkcjach będziesz musiał porównać właściwości relatedTarget (W3C) lub ToTarget/fromTarget (IE) w parametrze zdarzenia. Spójrz na ten link, aby uzyskać więcej informacji: http://www.quirksmode.org/js/events_mouse.html#relatedtarget – AndrewR
To dużo pracy, aby uchwycić tylko nadrzędnego kontenera i nie obsługiwać nic z elementów podrzędnych. Jeśli nie masz konkretnego powodu, nie możesz uprościć swojego kodu, używając funkcji 'hover()' jQuery. – AndrewR