说我听单击按钮
btn.addEventListener("click", function(e) {
console.log("button clicked");
});
现在,这会激活单击侦听器,如果用户点击我的按钮,则点击事件将在我的按钮上发射,然后向其所有父母传播(除非防止冒泡)。但是,如果用户点击完全无关的元素怎么办?这会导致该事件向该元素开火,然后向所有父母传播吗?(即使对处理这些点击事件没有兴趣)
我的猜测是,是的,因为一旦我开始在特定元素上聆听它们后,整个窗口上应该有一个侦听器。但是我不确定。
来自o'reilly的JavaScript Essentials:
发生事件时,浏览器检查是否已定义 该活动的活动处理程序;如果有的话,该功能将运行。一次 该功能已完成,浏览器再次开始事件循环。 只要加载网页,此事件循环就会继续。
这意味着,每个点击方法都是由浏览器处理的。但是,如果您没有分配侦听器,则不会走得更远。但至少它知道何时单击任何东西。