Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 如何删除svg元素中的事件处理程序?_Javascript_Svg - Fatal编程技术网

Javascript 如何删除svg元素中的事件处理程序?

Javascript 如何删除svg元素中的事件处理程序?,javascript,svg,Javascript,Svg,以mouseover和函数“foo”为例。“this”是svg元素 this.mouseover(foo); // adds handler this.unmouseover(foo); // removes handler 但如果我在做: this.mouseover(function(parameter){foo(parameter);}); // say I need to pass a parameter 我可以删除此处理程序吗? 谢谢 No;您没有对匿名函数的引用 解决此问题的一种

以mouseover和函数“foo”为例。“this”是svg元素

this.mouseover(foo); // adds handler
this.unmouseover(foo); // removes handler
但如果我在做:

this.mouseover(function(parameter){foo(parameter);}); // say I need to pass a parameter
我可以删除此处理程序吗?
谢谢

No;您没有对匿名函数的引用

解决此问题的一种方法是在
mouseover
调用上方声明函数:

var param = parameter;
var foobar = function(){foo(param);
this.mouseover(foobar);
this.unmouseover(foobar);

我不推荐任何方式

我必须告诉你,有一种方法可以从内部访问匿名函数。这已弃用,在严格模式/ES5+下无法工作:

var anonymousFn = null;
this.mouseover(function(parameter) {
  foo(parameter);
  anonymousFn = arguments.callee;
  // now anonymousFn has a reference to the annymous function
});

请看:

哦,好吧。我希望能够避免再声明一个函数。。。但这不太可能。