根据(我对documentation的理解),如果任何事件侦听器在处理它时调用dispatchEvent
方法,则false
方法应返回Event.preventDefault()
。
但是,如果我使用CustomEvent
对象进行尝试,则dispatchEvent
始终返回true
。请查看以下代码段:
var div = document.getElementById("test");
div.addEventListener("custom", function(e) {
e.preventDefault();
});
div.innerHTML = div.dispatchEvent(new CustomEvent("custom"));

<div id="test"></div>
&#13;
我哪里做错了?
答案 0 :(得分:1)
您正在调度名为“test”的自定义事件,但正在侦听“自定义”,因此您的处理程序永远不会被调用。您还需要通过将<div class = "blah">
{{>sidebar}}
</div>
添加到init对象来确保您的事件可以取消:
cancelable: true
var div = document.getElementById("test");
div.addEventListener("custom", function(e) {
e.preventDefault();
});
div.innerHTML = div.dispatchEvent(new CustomEvent("custom", {
cancelable: true
}));