mouseenter & mouseleave VS mouseover & mouseout

本文通过实例对比了mouseenter/mouseleave与mouseover/mouseout两种鼠标事件的区别,重点在于前者不会发生事件冒泡,且当指针从元素后代的空间移至该元素自身空间时不会触发。测试环境为Firefox+Firebug。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mouseenter/mouseleave 和 mouseover/mouseout的本质区别网上讲得比较多,但各种解释看得云里雾里,经过试验,他们的区别 it differs in that it doesn't bubble and that it isn't sent when the pointer is moved from one of its descendants' physical space to its own physical space 引自mozilla.org

上面这句英文用不同的颜色区分以断句,方便理解。本质还是体现在冒泡上

可以通过下面两个例子加深印象,测试环境Firefox+Firebug。

复制代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>mouseenter & mouseleave</title>
  <style>
    div{position:absolute;}
  </style>
 </head>
 <body>
    <div id="div1" style="height:100px;border:1px solid red" onmouseenter="console.log('enter div1');" onmouseleave="console.log('leave div1');">
         div1 div1 div1 div1 div1 div1 div1 div1
        <div id="div2" style="left:50px;height:200px;border:1px solid red" onmouseenter="console.log('enter div2');" onmouseleave="console.log('leave div2');">
            div2 div2 div2 div2 div2 div2 div2 
            <div id="div3" style="left:100px;height:300px;border:1px solid red" onmouseenter="console.log('enter div3');" onmouseleave="console.log('leave div3');">
                 div3 div3 div3 div3 div3 div3 div3 div3
            </div>
        </div>
    </div>
 </body>
</html>
复制代码

 

复制代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>mouseover & mouseout</title>
  <style>
    div{position:absolute;}
  </style>
 </head>
 <body>
    <div id="div1" style="height:100px;border:1px solid red" onmouseover="console.log('over div1');" onmouseout="console.log('out div1');">
         div1 div1 div1 div1 div1 div1 div1 div1
        <div id="div2" style="left:50px;height:200px;border:1px solid red" onmouseover="console.log('over div2');" onmouseout="console.log('out div2');">
            div2 div2 div2 div2 div2 div2 div2 
            <div id="div3" style="left:100px;height:300px;border:1px solid red" onmouseover="console.log('over div3');" onmouseout="console.log('out div3');">
                 div3 div3 div3 div3 div3 div3 div3 div3
            </div>
        </div>
    </div>
 </body>
</html>
复制代码

参考文献:

http://www.cnblogs.com/libmw/articles/2600747.html 


本文转自Kai的世界,道法自然博客园博客,原文链接:http://www.cnblogs.com/kaima/archive/2012/09/25/2702110.html,如需转载请自行联系原作者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值