說我聽點擊一個按鈕正在偵聽特定元素上的事件,導致該事件在不相關的元素上觸發?
btn.addEventListener("click", function(e) {
console.log("button clicked");
});
現在,這激活了點擊監聽器,如果在我的用戶點擊按鈕,單擊事件將觸發對我的按鈕,然後傳播到其所有的父母(除冒泡被阻止)。但是如果用戶點擊完全不相關的元素呢?這是否會導致事件觸發該元素,然後傳播給其所有父母? (即使沒有興趣處理這些點擊事件)
我的猜測是,是的,它會的,因爲一旦我開始在特定元素上偵聽它們,應該在整個窗口上有點擊偵聽器。但我不確定。
事件應該會觸發,但除非您編碼,否則將不予處理。 – AndFisher
您的處理程序*是否在與其他元素髮生交互時引發事件觸發?我想這不會。事件系統應該運行,而不管已添加的處理程序。如果它沒有啓動,直到有人在某處添加處理程序,我會感到驚訝。但我想我不確定。 – 2016-12-16 16:25:25
@squint,那麼即使沒有任何處理程序,所有事件都會被監聽嗎?考慮到可能發生的事件,這對處理器時間來說是一個巨大的浪費。你確定嗎? – user7307621