在上面的图片中,父dom节点有它的事件,子节点也有。
我可以在Child中使用stopPropagation来防止冒泡。
但是在这种情况下,如果孩子太多,那么停止传播应该过多。在父节点上使用的函数是否可以阻止子气泡?
答案 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);