我一直在寻找vanilla JS中的答案,如果没有引用jquery的stopPropagation,它似乎找不到任何东西。
我有一个“div1”,我已经应用了一个eventlistener,在新窗口中打开一个URL。我还有一个带有“div1”的“div2”,我希望能够通过eventListener进行交互。
但是,正如您可能想象的那样,现在,单击div2只会激活div1的eventListener。有没有办法优先考虑点击或适应div2位于div1的事实?
答案 0 :(得分:4)
使用stopPropagation
是确保事件不会落入层次结构中下一个元素的一种方法:
div1.addEventListener('click', function(e) {
alert('Div1 Clicked Directly!');
});
div2.addEventListener('click', function(e) {
e.stopPropagation();
alert('Div2 Clicked!');
});