如何使用" stopPropagation"在父母dom?

时间:2016-06-17 08:12:15

标签: javascript stoppropagation

在上面的图片中,父dom节点有它的事件,子节点也有。

我可以在Child中使用stopPropagation来防止冒泡。

但是在这种情况下,如果孩子太多,那么停止传播应该过多。在父节点上使用的函数是否可以阻止子气泡?

1 个答案:

答案 0 :(得分:2)

听起来,如果事件通过特定类型的子元素传递,您希望避免执行父事件处理程序所做的工作。在这种情况下,在父事件处理程序中,您可以使用event.target来确定事件是否通过匹配的子项传递。

在半伪代码中:

theParentElement.addEventListener("the-event", function(e) {
    for (var node = e.target; node && node != this; node = node.parentNode) {
        if (isChildWeWantToFilterOut(node)) {
            return;
        }
    }

    // parent handler logic that you only want to run when the
    // event didn't pass through a relevant child
}, false);