我用这个功能我每次开酥料饼的时间来创建一个事件:JS - 创建之前删除事件新
var createCustomEvent = function() {
var event;
if (document.createEvent) {
event = document.createEvent("HTMLEvents");
event.initEvent("CUSTOM EVENT", true, true);
} else {
event = document.createEventObject();
event.eventType = "CUSTOM EVENT";
}
event.eventName = "CUSTOM EVENT";
if (document.createEvent) {
popover.dispatchEvent(event);
} else {
popover.fireEvent("on" + event.eventType, event);
}
};
在onother脚本中,我这样做是为了一个事件侦听器添加到节点:
document.removeEventListener('CUSTOM EVENT', handler);
document.addEventListener('CUSTOM EVENT', handler);
现在做酥料饼开盘后我有很多CUSTOM EVENT
在document
(我用getEventListeners(document)
测试)共同创造。 我看到许多CUSTOM EVENT
在控制台中使用getEventListeners(文件),所以我认为他们是事件监听器,但我总是删除EventListener
之前创建新的,所以也许问题是,我有很多事件而不是事件侦听器,我我不确定。
我怎样才能避免这种情况,并创建总是只有一个CUSTOM EVENT
只使用JavaScript?
感谢
我米困惑,你有多个*事件*或多个*事件处理程序*?如果你只想要一个事件处理程序,只需绑定一次。不知道,如果这是相关的,但'document.removeEventListener('CUSTOM EVENT');'是无效的。你必须传递一个你想要移除的处理函数的引用。 –
我编辑过,这是我的错误,但它不是一个相关的问题。顺便说一句,我在控制台中看到很多CUSTOM EVENT使用'getEventListeners(document)',所以它们是_event listeners_,但正如你所看到的,我总是在创建新的之前删除EventListener,所以也许问题是我有很多_events_而不是_event listeners_,我不确定。 – Frank