我有这样的事件:
var CountDemKeys;
document.body.addEventListener('keypress', function() {
CountDemKeys++;
if (CountDemKeys % 10 === 0) {
alert("WOO HOO!");
}
});
并在一个单独的函数中:
RemoveShizzle = function() {
document.body.removeEventListener('keypress');
};
但事件仍在发生:(
注意:我还尝试将活动设置为null
:document.body.addEventListener('keypress', null);
document.body.addEventListener('keypress', null);
没有快乐......
答案 0 :(得分:5)
你必须将与第二个参数相同的函数传递给removeEventListener
。
可能有其他侦听器附加到'keypress'
到body元素。
因此,在没有提供原始函数的情况下,removeEventListener
不知道要删除哪个侦听器。
var CountDemKeys;
var listener = function() {
CountDemKeys++;
if (CountDemKeys % 10 === 0) {
alert("WOO HOO!");
}
};
document.body.addEventListener('keypress', listener);
RemoveShizzle = function() {
document.body.removeEventListener('keypress', listener);
};
答案 1 :(得分:0)
你很可能错过removeEventListener的第二个参数。
另请注意,对于MSIE支持,您需要使用attachEvent