如果执行子事件,如何防止父事件。这是代码见评论
document.addEventListener('touchend', function (e) {
//Do something here
}, false);
someChildElement.addEventListener('touchend', function (e) {
//Do something here
//if this code block is executed then do-not execute the touchend event of document//
}, false);
答案 0 :(得分:2)
您可以在子事件处理程序
中尝试此操作event.stopPropagation()
对于Internet Explorer,您应该使用
window.event.cancelBubble = true
答案 1 :(得分:1)
您是否尝试过更改事件传播机制?
'addEventListener'方法中的最后一个参数控制事件的传播。如果我们将其设置为false,则事件会冒泡但如果我们将其设置为true,则捕获事件然后它会冒泡。因此,当我们将其设置为“true”时,“容器”在“子”之前接收事件,当我们将其设置为“false”时,子项在容器之前接收事件。 简单来说,当我们将参数设置为'false'时,事件注册器从内部元素开始,因为事件从'child'元素冒泡到其容器元素。当我们将其设置为“true”时,事件注册器首先向下移动到容器元素,因为它是事件注册的第一个元素,从最外层元素遍历文档树,然后到达子元素。 / p>
然后你可以使用event.stopPropagation来阻止事件进一步遍历。
您可以在MDN
上详细了解相关信息答案 2 :(得分:0)