Mouseover와 Mouseenter 이벤트의 차이점 이해
웹 개발에서 mouseover 및 mouseenter 이벤트는 호버 관련 기능에 자주 사용됩니다. 비슷하게 동작하는 것처럼 보이지만 둘 사이에는 미묘한 차이가 있습니다.
이벤트 전파
마우스오버 이벤트와 마우스입력 이벤트의 주요 차이점은 이벤트 전파에 있습니다. . Mouseover는 DOM 계층 구조 위로 전파되는 버블링 이벤트인 반면, mouseenter는 대상 요소에서만 발생하는 버블링되지 않는 이벤트입니다.
이는 마우스 커서가 DOM 계층 구조 내 요소에 들어갈 때 mouseover 이벤트가 트리거될 수 있음을 의미합니다. 반면 mouseenter 이벤트는 커서가 대상 요소 자체에 들어갈 때만 발생합니다.
대화형 데모
이 개념을 설명하려면 다음 jQuery 데모를 참조하세요.
var i = 0;<br>$("div.overout ")<br> .mouseover(function() {</p> <pre class="brush:php;toolbar:false">i += 1; $(this).find("span").text("mouse over x " + i);
})
.mouseout(function() {
$(this).find("span").text("mouse out ");
});
var n = 0;
$("div.enterleave")
.mouseenter(function() {
n += 1; $(this).find("span").text("mouse enter x " + n);
})
.mouseleave(function() {
$(this).find("span").text("mouse leave");
});
div.out {<br> 너비: 40%; <br> 높이: 120px;<br> 여백: 0 15px;<br> background-color: #d6edfc;<br> float: 왼쪽;<br>}</p> <p>div.in {<br> 너비 : 60%;<br> 높이: 60%;<br> 배경색: #fc0;<br> 여백: 10px 자동;<br>}</p> <p>p {<br> 줄 높이: 1em ;<br> 여백: 0;<br> 패딩: 0;<br>}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script></p> <p><div class="아웃 오버아웃 "><br> <span>마우스 이동</span><br> <div class="in"><br> </div><br></div></p> <p><div class="out enterleave"><br> <span>마우스 이동</span><br> <div class="in"><br> </div><br></div>
이 데모에서는 mouseover 이벤트가 "overout" 요소에 연결되고 mouseenter 이벤트가 "enterleave" 요소에 연결됩니다. "overout" 컨테이너 위로 마우스를 이동하면 내부 "in" 요소 위로 마우스를 이동할 때에도 마우스 오버 이벤트 수가 증가합니다. 대조적으로 "enterleave" 컨테이너는 마우스가 컨테이너 자체에 들어갈 때만 mouseenter 이벤트 수를 증가시킵니다.
각 이벤트 사용 시기
고유한 이벤트에 따라 전파 동작을 위해 마우스 커서가 컨테이너 자체에 들어가는지 여부에 관계없이 컨테이너 내의 모든 요소에 대한 마우스 오버를 처리해야 하는 경우 mouseover 이벤트를 사용하는 것이 좋습니다. 반면, 지정된 대상 요소에서만 후버링을 구체적으로 처리하려는 경우에는 mouseenter 이벤트를 사용하세요.
위 내용은 ## Mouseover 대 Mouseenter: 각 이벤트를 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!