通常在处理DOM事件时,为了阻止事件冒泡,这样写:
ev.stopPropagation(); // ev 为事件回调函数的参数event
但有的时候却没有作用,子元素的clcik点击事件依然触发了父元素的clickl事件,解决方式:
if(ev.target != ev.currentTarget){
return false; // 判断退出父元素的处理逻辑
}
event对象中的属性:
target表示事件发生的对象,currentTarget表示当前事件冒泡到的父级层级节点对象。
通过判断两个对象是否相同,在父级处理是否响应点击事件逻辑。
放张事件属性截图:


博客围绕 JS 阻止事件冒泡展开,指出常规阻止方法有时无效,子元素点击仍触发父元素事件。介绍通过判断事件发生对象和当前冒泡到的父级层级节点对象是否相同,在父级处理点击事件响应逻辑来解决问题。

350

被折叠的 条评论
为什么被折叠?



