e.preventDefault();防止冒泡,但我们如何才能防止捕捉阶段进一步深入到儿童身上

e.preventDefault(); prevents bubbling, BUT how can we prevent capture phase from going down further to children

本文关键字:进一步 preventDefault 我们      更新时间:2023-09-26

e.preventDefault();可以防止冒泡,但我们如何才能防止捕获阶段进一步深入到儿童。

基本上,我有父元素和子元素,它们都有点击事件,但当用户点击子元素时,我想只触发父元素的点击,而不触发子元素的点击。

在下面的示例中,当用户单击任何a标记时,它不应该将用户重定向到href页面,而是应该触发parentdiv元素的单击事件

<div id='parentdiv'>
    <a href="a.html"></a>
    <a href="b.html"></a>
    <a href="c.html"></a>
</div>

据我所知,e.preventDefault()阻止了默认行为(单击提交按钮时提交,单击链接时跟随url)。e.stopPropagation()阻止事件向其他侦听器冒泡,所以这可能是您想要的。

[MDN]

如果只想让家长接收触摸事件,可以添加

pointer-events: none

在css中为children元素。