基于mouseout和mouseover等类似事件的冒泡问题解决方法 |
最近写点东西,比较闹心,一个弹出层,上边有其他元素,本意是鼠标离开弹出层时,执行一些动作,但在实际应用中,鼠标离开弹出层中的元素时,也会激活这些动作 。试了各浏览器的停止事件冒泡的方法,均无效 。 还是咱们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事件的元素,这样就可以避免上述问题 。 |