正在聆听特定元素上的事件,导致该事件对无关元素开火



说我听单击按钮

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

现在,这会激活单击侦听器,如果用户点击我的按钮,则点击事件将在我的按钮上发射,然后向其所有父母传播(除非防止冒泡)。但是,如果用户点击完全无关的元素怎么办?这会导致该事件向该元素开火,然后向所有父母传播吗?(即使对处理这些点击事件没有兴趣)

我的猜测是,是的,因为一旦我开始在特定元素上聆听它们后,整个窗口上应该有一个侦听器。但是我不确定。

来自o'reilly的JavaScript Essentials:

发生事件时,浏览器检查是否已定义 该活动的活动处理程序;如果有的话,该功能将运行。一次 该功能已完成,浏览器再次开始事件循环。 只要加载网页,此事件循环就会继续。

这意味着,每个点击方法都是由浏览器处理的。但是,如果您没有分配侦听器,则不会走得更远。但至少它知道何时单击任何东西。

相关内容

  • 没有找到相关文章

最新更新