父/子点击事件处理(vanilla JS)

时间:2015-11-10 20:41:12

标签: javascript

我一直在寻找vanilla JS中的答案,如果没有引用jquery的stopPropagation,它似乎找不到任何东西。

我有一个“div1”,我已经应用了一个eventlistener,在新窗口中打开一个URL。我还有一个带有“div1”的“div2”,我希望能够通过eventListener进行交互。

但是,正如您可能想象的那样,现在,单击div2只会激活div1的eventListener。有没有办法优先考虑点击或适应div2位于div1的事实?

Image Representation of Div Structure

1 个答案:

答案 0 :(得分:4)

使用stopPropagation是确保事件不会落入层次结构中下一个元素的一种方法:

div1.addEventListener('click', function(e) {
    alert('Div1 Clicked Directly!');
});

div2.addEventListener('click', function(e) {
    e.stopPropagation();
    alert('Div2 Clicked!');
});