首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >removeEventListener不工作

removeEventListener不工作
EN

Stack Overflow用户
提问于 2011-04-29 05:51:01
回答 4查看 22.1K关注 0票数 8

我不知道我做错了什么,但这里有一个我正在做的例子,它似乎不起作用。

代码语言:javascript
复制
someDom.addEventListener('mousemove',function(ev) {self.onInputMove(ev)},false);

someDom.removeEventListener('mousemove',self.onInputMove);

将执行removeEventListener代码,但它不会删除'mousemove‘侦听器

EN

回答 4

Stack Overflow用户

发布于 2011-04-29 05:55:12

removeEventListener删除与添加的函数完全匹配的侦听器。

在本例中,addEventListener添加的函数是:

代码语言:javascript
复制
var some_func = function(ev) {
    self.onInputMove(ev);
};

存储一个对实际函数的引用,这样就很好了。因此,例如,以下代码应该可以工作:

代码语言:javascript
复制
someDom.addEventListener('mousemove',self.onInputMove,false);

someDom.removeEventListener('mousemove',self.onInputMove,false);
票数 27
EN

Stack Overflow用户

发布于 2011-04-29 05:53:35

onInputMove不是事件回调方法。所以你需要做一些类似的事情:

代码语言:javascript
复制
var event = function(ev) {self.onInputMove(ev)};
someDom.addEventListener('mousemove', event,false);

someDom.removeEventListener('mousemove', event, false);
票数 6
EN

Stack Overflow用户

发布于 2012-07-12 14:58:35

为什么让它变得如此困难,只需使用以下内容将一个事件绑定到一个元素:

代码语言:javascript
复制
element.onmousemove = function(e) {
    // Some code here...
    alert("Mouse moved!");
};

现在,当您想要删除事件时,只需执行以下操作:

代码语言:javascript
复制
element.onmousemove = null;

完成了!

希望这对你们有帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5825493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档