JavaScript 事件處理中的冒泡(Bubble)和捕獲(Capture)是兩種事件傳播的機制。它們描述了當(dāng)事件觸發(fā)后,如何在 DOM 樹中傳播。這兩種機制的主要區(qū)別在于事件處理的時機。
在 JavaScript 中,我們可以通過設(shè)置元素的 addEventListener
方法的第三個參數(shù)為 true
來使用冒泡機制:
element.addEventListener('click', function(event) {
// 處理事件
}, true); // 設(shè)置為 true 使用冒泡機制
在 JavaScript 中,我們可以通過設(shè)置元素的 addEventListener
方法的第三個參數(shù)為 false
來使用捕獲機制:
element.addEventListener('click', function(event) {
// 處理事件
}, false); // 設(shè)置為 false 使用捕獲機制
需要注意的是,冒泡和捕獲并不是所有瀏覽器都支持的特性。在較舊的 Internet Explorer 瀏覽器(IE8 及以下版本)中,只支持捕獲機制。為了兼容這些瀏覽器,我們可以使用 attachEvent
方法來添加事件監(jiān)聽器,并通過設(shè)置 attachEvent
方法的第三個參數(shù)來選擇使用冒泡或捕獲機制。
element.attachEvent('onclick', function(event) {
// 處理事件
}, event.srcElement.readyState === 'complete'); // 設(shè)置為 true 使用冒泡機制,false 使用捕獲機制