【发布时间】:2017-07-11 18:50:21
【问题描述】:
如果您希望子元素内的点击不会冒泡到其父元素,您可以使用 stopPropagation 停止冒泡
<div class="parent">
<div class="child"></div>
</div>
document.querySelector('.parent').addEventListener('click', ()=> { .. }
document.querySelector('.child').addEventListener('click', ()=> { .. }
但是当点击从子元素内部开始并在外部结束时,如何防止父点击。换句话说:mousedown 在子内部,然后是 mousemove,它将指针移到子外部(但在父内部),然后是 mouseup
对我来说最重要的是,在这种情况下我不希望父点击,有什么建议吗?
更新:如果你记得 mousedown 目标,你可以在父点击回调中使用它:DEMO。但我希望有更好的解决方案
【问题讨论】:
-
Note 在 Firefox 中的行为与 chrome 不同。当 mouseup 发生时,父点击不会在 firefox 中触发
-
我在 Chrome 中测试 :) 但是 FF 显示了我需要的行为!!
-
对...我想通了。起初我很困惑,因为我第一次在 Firefox 中查看了演示并且在那里看起来很好
标签: javascript preventdefault dom-events stoppropagation