Ric*_*d H 6 javascript dom javascript-events
可能重复:
删除匿名事件侦听器
我有以下跨浏览器功能来添加事件监听器:
_SU3.addEventListener = function(elem, eventName, fn) {
if(elem.addEventListener ) {
elem.addEventListener(eventName, fn, false);
} else if (elem.attachEvent) {
elem.attachEvent('on'+eventName, fn);
}
};
Run Code Online (Sandbox Code Playgroud)
我正在添加这样的监听器:
_SU3.addEventListener(_show, "click", function(event) {
_SU3.getChildren(_show, uri, element);
});
Run Code Online (Sandbox Code Playgroud)
这一切都很好.但是我想在调用一次后删除监听器.就像这样:
_SU3.getChildren = function(_show, url, element) {
... blah...
_SU3.removeEventListener(_show, 'click', ANON_FUNCTION);
};
Run Code Online (Sandbox Code Playgroud)
但当然,监听器功能是匿名的,因此没有可供参考的功能名称.
如何删除监听器?
谢谢
您需要保留对该函数的引用:
var foo = function(event) { _SU3.getChildren(_show, uri, element); };
_SU3.addEventListener(_show, "click", foo);
Run Code Online (Sandbox Code Playgroud)
...
_SU3.getChildren = function(_show, url, element) {
... blah...
_SU3.removeEventListener(_show, 'click', foo);
};
Run Code Online (Sandbox Code Playgroud)
确保该变量foo位于删除事件侦听器的范围内.
| 归档时间: |
|
| 查看次数: |
5806 次 |
| 最近记录: |