Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:如何将参数传递给最终将被删除的侦听器函数_Javascript_Addeventlistener_Removeeventlistener - Fatal编程技术网

JavaScript:如何将参数传递给最终将被删除的侦听器函数

JavaScript:如何将参数传递给最终将被删除的侦听器函数,javascript,addeventlistener,removeeventlistener,Javascript,Addeventlistener,Removeeventlistener,我试图调用一个函数,该函数具有触发事件时所依赖的参数。但是,此函数不能是匿名的,因为侦听器将在将来被删除 我尝试为包装器使用函数表达式,并将对this的引用作为主函数中的参数传递: <div id="div"> click </div> 除了document.getElementById(“div”).removeEventListener(“单击”,wrapFunction)之外,一切正常行。这是我无法理解的部分,我将非常感谢您的帮助。与其将此传递给好函数(eve

我试图调用一个函数,该函数具有触发事件时所依赖的参数。但是,此函数不能是匿名的,因为侦听器将在将来被删除

我尝试为包装器使用函数表达式,并将对
this
的引用作为主函数中的参数传递:

<div id="div">
  click
</div>

除了
document.getElementById(“div”).removeEventListener(“单击”,wrapFunction)之外,一切正常行。这是我无法理解的部分,我将非常感谢您的帮助。

与其将
传递给
好函数(event,foo,bar,This)
调用
wrapFunction
内部,您只需传递
wrapFunction
本身,因为它是在调用处理程序时定义的:

函数main(){
让foo=“foo”;
让bar=“bar”;
让wrapFunction=函数(事件){
/*wrapFunction已定义,因此直接将其传递给goodFunction*/
goodFunction(事件、foo、bar、wrapFunction);
}
document.getElementById(“div”).addEventListener(“单击”,包装函数);
}
函数goodFunction(e、foo、bar、wrapFunction){
警报(foo);
警报(bar);
document.getElementById(“div”).removeEventListener(“单击”,包装函数);
}
main()
单击我