javascript完美解决onMouseOver、onMouseOut冒泡事件方法简单

javascript完美解决onMouseEnter、onMouseLeave、onMouseOver、onMouseOut冒泡事件的一种思路,兼容各种浏览器.

js冒泡事件的产生: 当鼠标移动到div区域内的table、img、a等元素时触法div本身的onmouseout事件. 由于鼠标停留在div标签内部元素上,触发div的onmouseout事件肯定不是我们想要的结果,于是便产生了冒泡事件.

 js冒泡事件的解决方法: 当然网上解决的方法有很多,大多代码伸长,不容易理解. 而我们讲的代码非常简短,确容易理解.

 原理就是:当触发div的onmouseout事件时,判断触法事件的元素是不是div的子元素,如果是则中断执行即可.

核心代码用到一个contains方法。如果A元素包含B元素,则返回true,否则false。

IE: event.toElement ; // 这个方法用来返回IE下触法事件的元素

非IE: event.relatedTarget;  // 这个方法用来返回非IE下触法事件的元素

代码如下:

<div οnmοuseοut="hiddenObj(event,this);"> <a href=#>冒泡事件超链接</a> </div>

<script type="text/javascript" >

function hiddenObj(theEvent,obj){ //theEvent用来传入事件,Firefox的方式
 var browser=navigator.userAgent;   //取得浏览器属性
 if (browser.indexOf("MSIE")>0){ //如果是IE
           if (obj.contains(event.toElement)) return; // 如果是子元素则结束函数
   }else{ //如果是Firefox
      if (obj.contains(theEvent.relatedTarget)) return; // 如果是子元素则结束函数
}
/*要执行的操作*/
obj.style.display='none';
}

</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值