基于mouseout和mouseover等类似事件的冒泡问题解决方法

2019-12-24,,,,

最近写点东西,比较闹心,一个弹出层,上边有其他元素,本意是鼠标离开弹出层时,执行一些动作,但在实际应用中,鼠标离开弹出层中的元素时,也会激活这些动作。试了各浏览器的停止事件冒泡的方法,均无效。


还是咱们javaeye里高人众多,在一个哥们博客中发现了如下代码:
复制代码 代码如下:
  function isMouseLeaveOrEnter(e, handler) {   
        if (e.type != 'mouseout' && e.type != 'mouseover') return false;   
         var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;   
         while (reltg && reltg != handler)   
            reltg = reltg.parentNode;   
         return (reltg != handler);   
     }

这个方法是判断,当前元素是不是要执行mouseout事件的元素,这样就可以避免上述问题。

您可能感兴趣的文章:

  • 兼容ie和firefox的鼠标经过(onmouseover和onmouseout)实现--简短版
  • javascript mouseover、mouseout停止事件冒泡的解决方案
  • js ondocumentready onmouseover onclick onmouseout 样式
  • 实现onmouseover和onmouseout应用于RadioButtonList或CheckBoxList控件上
  • onmouseover和onmouseout的一些问题思考
  • 经过绑定元素时会多次触发mouseover和mouseout事件
  • javascript中mouseover、mouseout使用详解

《基于mouseout和mouseover等类似事件的冒泡问题解决方法.doc》

下载本文的Word格式文档,以方便收藏与打印。