e.preventDefault();防止冒泡,但我们怎样才能防止捕获阶段进一步下降到儿童

时间:2016-07-21 14:07:28

标签: javascript html angularjs html5

e.preventDefault();可以防止冒泡,但是我们怎样才能防止捕获阶段进一步降低到儿童身上。

基本上,我的父元素和子元素都有点击事件,但是我想在用户点击孩子时触发父母而不是孩子的点击。

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

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

2 个答案:

答案 0 :(得分:2)

据我了解,e.preventDefault()会阻止默认行为(单击提交按钮时提交,单击链接时会跟随网址)。 e.stopPropagation()阻止事件冒泡到其他听众,所以也许这就是你想要的那个。

[MDN]

答案 1 :(得分:0)

如果您只想让父母接收触摸事件,您可以添加

pointer-events: none

在css中为儿童元素。