调度CusrtomEvent始终返回true

时间:2016-02-22 16:02:00

标签: javascript javascript-events

根据(我对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;
&#13;
&#13;

我哪里做错了?

1 个答案:

答案 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
}));