在JavaScript中,cancelBubble
和stopPropagation
都是用于阻止事件冒泡的方法,但存在一些區別:
cancelBubble
是IE中的方法,而stopPropagation
是標準的DOM方法,也支持其他瀏覽器。
cancelBubble
是一個布爾值屬性,設置為true
可以阻止事件冒泡,設置為false
表示允許事件冒泡。而stopPropagation
是一個方法,調用該方法可以阻止事件冒泡。
cancelBubble
可以在事件處理程序中直接訪問和設置,而stopPropagation
只能在事件對象上調用。
示例代碼如下:
// 使用cancelBubble方式阻止事件冒泡(IE)
document.getElementById('myElement').onclick = function(event) {
event.cancelBubble = true;
};
// 使用stopPropagation方式阻止事件冒泡(標準DOM)
document.getElementById('myElement').onclick = function(event) {
event.stopPropagation();
};
需要注意的是,stopPropagation
只能阻止事件冒泡,而無法阻止事件捕獲。如果需要同時阻止事件捕獲和事件冒泡,可以使用stopImmediatePropagation
方法。