一、当绑定着两个事件的元素里面没有子元素的时候,这两个事件的触发效果是一致的:
x=0; y=0; $(document).ready(function(){ $("div.over").mouseover(function(){ $(".over").text(x+=1); }); $("div.enter").mouseenter(function(){ $(".enter").text(y+=1); }); }); </script> <div class="over" style="background-color:lightgray;padding:20px;40%;float:left"> mouseover 事件: </div> <div class="enter" style="background-color:lightgray;padding:20px;40%;float:right"> mouseenter 事件: </div>
二、当绑定事件的元素里面有子元素的时候,鼠标经过绑定mouseover的当前元素以及它里面的子元素的时候,都会触发,而经过绑定mouseenter的元素时,只会在鼠标刚进入的时候触发,当进入其子元素的时候,是不会再触发的了
x=0; y=0; $(document).ready(function(){ $("div.over").mouseover(function(){ $(".over span").text(x+=1); }); $("div.enter").mouseenter(function(){ $(".enter span").text(y+=1); }); }); </script> <div class="over" style="background-color:lightgray;padding:20px;40%;float:left"> <h2 style="background-color:white;">被触发的 Mouseover 事件:<span></span></h2> </div> <div class="enter" style="background-color:lightgray;padding:20px;40%;float:right"> <h2 style="background-color:white;">被触发的 Mouseenter 事件:<span></span></h2> </div>
总结两句话
-
不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。对应mouseout
-
只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。对应mouseleave