使用函数foo(){}这样的命名函数对addEventListener和removeEventListener来说似乎很容易。
然而,我有另一个例子,它可能是有用的不知名的函数,例如。
addEventListener( 在删除事件侦听器之前,函数(){ /*whatever ()。*/...removeEvenetListener(“.”、??、.);} );
发布于 2013-02-15 18:23:30
不能删除匿名函数,需要一个处理程序:
el.addEventListener(
"theevent",
function myhandler(e){
/*whatever i want to do before removing the eventlistener afterwards.*/
this.removeEvenetListener(e.type, myhandler, false);
},
false
);请注意,myhandler只为函数的主体定义,因此您不会与外部的其他函数的名称发生冲突。
发布于 2013-02-15 18:21:47
使用arguments.callee。像这样的东西会有用的:
addEventListener("theEvent",function() {
var callee = arguments.callee;
// some code here
removeEventListener("theEvent",callee);
});或者如果你使用严格的模式(在我看来毫无意义,但以防万一.)用这个:
addEventListener("theEvent",function handler() {
// some code here
removeEventListener("theEvent",handler);
});https://stackoverflow.com/questions/14900905
复制相似问题