防止子元素的事件默认值

时间:2012-01-05 04:50:36

标签: javascript

如果执行子事件,如何防止父事件。这是代码见评论

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);

3 个答案:

答案 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)

使用

防止默认(事件)功能。

http://api.jquery.com/category/events/event-object/