id가 "button"인 div가 있습니다. (CSS 호버 선택기를 사용하지 않고) 마우스를 가져 가면 배경이 파란색이되도록 변경하려고합니다.Javascript addEventListener - 마우스 오버 효과를 만드는 데 사용 하시겠습니까?
var item = document.getElementById("button");
item.addEventListener("mouseover", func, false);
function func()
{
var item = document.getElementById("button");
item.setAttribute("style", "background-color:blue;")
}
그러나 이것은 단지 내가 마우스를 가져 가면 파란색으로 항목의 색상을 설정,하지만 멀리 마우스를 이동 한 후 흰색으로 재설정하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? (btw, mouseenter 및 mouseleave는 이것과 함께 작동하지 않습니다.)
아 ... 대단한! 내 div 안에 이미지가 있고 "out"으로 간주하여 상자 안의 어떤 방법으로도 상자 안에 있다고 생각합니까? – antonpug
예, mouseover 및 mouseout 이벤트는 자식의 모든 이벤트를 catch합니다. 함수에서 이벤트 매개 변수의 relatedTarget (W3C) 또는 toTarget/fromTarget (IE) 속성을 비교해야합니다. 자세한 정보는 다음 링크를 참조하십시오. http://www.quirksmode.org/js/events_mouse.html#relatedtarget – AndrewR
상위 컨테이너 만 캡처하고 하위 요소는 처리하지 않는 것이 좋습니다. 특별한 이유가없는 한, jQuery의'hover()'함수를 사용하여 코드를 단순화 할 수있다. – AndrewR