正在侦听特定元素上的事件,导致该事件触发不相关的元素吗?

时间:2016-12-16 16:19:03

标签: javascript events javascript-events event-handling mouseevent

说我听按钮上的点击

btn.addEventListener("click", function(e) {
  console.log("button clicked");
});

现在激活点击监听器,如果用户点击我的按钮,则单击事件将触发我的按钮,然后传播到其所有父节点(除非阻止冒泡)。但是如果用户点击完全不相关的元素呢?这会导致事件触发该元素,然后传播给它的所有父母吗? (即使没有兴趣处理这些点击事件)

我的猜测是,它会,因为一旦我开始在特定元素上监听它们,就应该有一个监听器来点击整个窗口。但我不确定。

1 个答案:

答案 0 :(得分:0)

来自O'Reilly的JavaScript Essentials:

  

当事件发生时,浏览器会检查您是否已定义   该事件的事件处理程序;如果你有,那么运行该功能。一旦   功能完成后,浏览器再次启动事件循环。   只要加载网页,此事件循环就会继续。

这意味着,每个点击方法都由浏览器处理。但是,如果您没有分配监听器,则不会更进一步。但至少,它知道何时点击任何内容。