【发布时间】:2020-08-06 14:03:41
【问题描述】:
我正在尝试将事件侦听器添加到两个元素,容器和存档。它们在这个层次结构中 - 容器->时间戳->存档。
我通过以下方式向存档按钮添加了一个事件监听器,
archive.addEventListener('click', ()=>{
console.log("HI");
})
以类似的方式,我将事件侦听器附加到存档按钮的父容器,
container.addEventListener('click', ()=>{
open_email(element.id);
})
每当我点击存档按钮时,容器的事件监听器就会被触发,这是不可取的。我尝试查找事件委托,但没有解决这个问题的任何想法。任何帮助将不胜感激。
【问题讨论】:
-
event.stopPropagation()存档中的事件。您需要将event作为参数传递给处理程序。 developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation -
这能回答你的问题吗? How do I detect a click outside an element?
-
重复也是类似的情况。
-
@Taplar,我在发布我的问题之前阅读了该主题。我发现很多人不推荐
stopPropagation。 -
“可能”是重要的词。编程中的一切都可能成为未来的潜在问题。作为开发人员,您应该了解自己的代码库并知道这是否会成为问题。此外,跑题了,这就是前端功能测试很重要的原因。