本文介绍了Javascript removeEventListener不工作 - 事件侦听器仍然存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经看了几个方法,但是我无法确定,我的代码是:
I've looked at a few ways around this, but I can't really tell, my code is:
lb = document.body; if(lb.addEventListener){ lb.addEventListener('keyup', function(event){ keyPress(event.keyCode) }, false); } //In another function. if(document.body.removeEventListener){ document.body.removeEventListener('keyup', function(event){event.keyCode}, false); }删除代码不起作用,没有尝试过很多解决方案但是它是我脚本的最后一件事,我只是想完成它。
The remove code is not working, haven't tried a great deal of solutions yet but its the last thing on my script and I just want it done.
谢谢你所有的
推荐答案当调用removeEventListener时,必须给它相同的功能实例而不是addEventListener:
When calling removeEventListener, you have to give it the same function instance than to addEventListener:
var lb = document.body; var callback = function(event){ keyPress(event.keyCode) }; if(lb.addEventListener){ lb.addEventListener('keyup', callback, false); } //In another function. if(document.body.removeEventListener){ document.body.removeEventListener('keyup', callback, false); }jQuery使得更容易处理这一点,感谢它的命名空间事件功能:
jQuery makes it easier to deal with this, thanks to its namespaced events feature:
$(lb).on('keyup.my_namespace', function () { ... }) // later $(lb).off('keyup.my_namespace');更多推荐
Javascript removeEventListener不工作
发布评论