【发布时间】:2014-05-27 17:14:10
【问题描述】:
我对下面的脚本感到困惑:
var event = new Event('shazam');
document.body.addEventListener('shazam',function(){
alert('body');
});
document.addEventListener('shazam',function(){
alert('document');
});
window.addEventListener('shazam',function(){
alert('window');
});
document.body.dispatchEvent(event);
当我在浏览器上运行此脚本时,我只会收到 alert('body'); 事件。 但是如果我将 addEventListener 的捕获参数(第三个可选参数)设置为 true,则所有警报都会按应有的顺序捕获。
为什么 shazam 事件 没有冒泡?
【问题讨论】:
-
创建一个
CustomEvent而不是Event并将true作为第二个参数(canBubble参数)传递 -
该属性似乎不叫'canBubble',它是'bubbles'。
标签: javascript events event-bubbling dispatchevent