首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数(){}的removeEventListener

函数(){}的removeEventListener
EN

Stack Overflow用户
提问于 2013-02-15 18:17:58
回答 2查看 1.3K关注 0票数 0

使用函数foo(){}这样的命名函数对addEventListener和removeEventListener来说似乎很容易。

然而,我有另一个例子,它可能是有用的不知名的函数,例如。

addEventListener( 在删除事件侦听器之前,函数(){ /*whatever ()。*/...removeEvenetListener(“.”、??、.);} );

EN

回答 2

Stack Overflow用户

发布于 2013-02-15 18:23:30

不能删除匿名函数,需要一个处理程序:

代码语言:javascript
复制
el.addEventListener(
    "theevent",
   function myhandler(e){
       /*whatever i want to do before removing the eventlistener afterwards.*/ 
       this.removeEvenetListener(e.type, myhandler, false);

   },
   false
);

请注意,myhandler只为函数的主体定义,因此您不会与外部的其他函数的名称发生冲突。

票数 0
EN

Stack Overflow用户

发布于 2013-02-15 18:21:47

使用arguments.callee。像这样的东西会有用的:

代码语言:javascript
复制
addEventListener("theEvent",function() {
    var callee = arguments.callee;
    // some code here
    removeEventListener("theEvent",callee);
});

或者如果你使用严格的模式(在我看来毫无意义,但以防万一.)用这个:

代码语言:javascript
复制
addEventListener("theEvent",function handler() {
    // some code here
    removeEventListener("theEvent",handler);
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14900905

复制
相关文章

相似问题

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