我有这样的事情:
if (something) {
init();
} else {
document.addEventListener('CUSTOM_EVENT', init, false);
}
var init = function() {
document.removeEventListener('CUSTOM_EVENT', init, false);
// do stuff
}
我是否需要在removeEventListener
电话周围添加某种检查?如果是这样,我可以这样做:
var eventAdded = false;
if (something) {
init();
} else {
document.addEventListener('CUSTOM_EVENT', init, false);
eventAdded = true;
}
var init = function() {
if (eventAdded) {
document.removeEventListener('CUSTOM_EVENT', init, false);
}
// do stuff
}
但感觉有点不雅。如果没有什么大不了的话,我宁愿留下原始的removeEventListener
电话,或者做一些不需要外部变量的事情。
答案 0 :(得分:8)
https://developer.mozilla.org/en/DOM/element.removeEventListener
使用不识别EventTarget上任何当前已注册的EventListener的参数调用removeEventListener()无效。