자바 (WC3 모델과 Microsoft 모델)의 다양한 이벤트 모델과 버블 링 및 캡처의 차이점을 알고 있습니다. 그러나 몇 시간 동안이 문제에 대한 다양한 기사를 읽은 후에도 다음과 같이 간단하게 보이는 동작을 올바르게 코딩하는 방법을 여전히 확신 할 수 없습니다.Javascript : 여러 개의 mouseout 이벤트가 발생했습니다
div
요소와 div
요소가있는 경우, 마우스가 outer-div를 떠날 때 트리거되는 이벤트. 마우스가 내부 div에서 외부 div로 넘어갈 때 아무 것도 일어나지 않아야하고 마우스가 외부 div에서 내부 div로 넘어갈 때 아무 것도 일어나지 않아야합니다. 이벤트는 만 마우스가 바깥 쪽 div에서 주변 페이지로 이동하면 실행됩니다. 이제
<div id="outer" style = "width:20em; height:20em; border:1px solid #F00" align = "center" onmouseout="alert('mouseout event!')" >
<div id="inner" style = "width:18em; height:18em; border:1px solid #000"></div>
</div>
, 나는 외부 사업부의 "로 마우스를"이벤트, 이로 마우스 이벤트가 해고를 배치하면 때 주위의 페이지 내부-사업부에서 마우스 이동 이벤트가 발생하기 때문에 일단 마우스가 내부에서 외부로 이동하면 다시 한 번, 외부에서 주변 페이지로 이동할 때 다시 한 번 누르십시오.
ev.stopPropagation()
을 사용하여 이벤트를 취소 할 수 있다는 것을 알고 있으므로 inner-div에 이벤트 처리기를 등록하여 이벤트 전파를 취소하려고했습니다. 그러나 마우스가 outer-div에서 inner-div로 이동하면 이벤트가 실행되지 않습니다.
그래서 뭔가를 간과하지 않는 한 복잡한 마우스 추적 기능 없이는이 동작을 수행 할 수없는 것처럼 보입니다. 앞으로 JQuery와 같은보다 고급 프레임 워크를 사용하여이 코드를 다시 구현할 계획을 가지고 있습니다.하지만 지금은 일반적인 Javascript에서 위의 동작을 구현할 수있는 간단한 방법이 있는지 궁금합니다.
페이지가 요소를 결합 된 것으로 간주합니까? outer-div 자체처럼 그냥 "outer-div"가 될 것이고 내부 div는 "outer-div + inner-div"가 될 것입니다. 그래서 당신이 그들 사이를 가로 지르면 그것들을 두 개의 분리 된 것들 onmouseout 이벤트가 둘 다 첨부되어 있습니까? 괴상한 것 같지만 그것이 페이지가 여기에서 작동하는 것처럼 보입니다. – animuson