gpt4 book ai didi

javascript - 从内部外部函数中删除监听器

转载 作者:行者123 更新时间:2023-11-30 12:03:26 25 4
gpt4 key购买 nike

在 JS 中是否可以从别处描述的函数内部移除一个监听器,然后传递给监听器?

我希望这样的事情能起作用,但它不起作用(我的意思是行 self.removeEventListener("blur", named, false);)。同时在 Debug模式下,我看到 this 值被正确传递。

someElement.addEventListener("blur", function namedFunc() {handler(this)} ,false);

function handler(self) {
self.removeEventListener("blur", namedFunc, false);
}

最佳答案

name namedFunction 仅可见 inside that function .因此,您需要将它传递给处理程序,以便稍后可以将其删除。

var someElement = document.getElementById('foo');

someElement.addEventListener('click', function namedFunc() {
handler(this, namedFunc);
}, false);

function handler(self, fn) {
alert('handler called');
self.removeEventListener('click', fn, false);
}
<button id="foo">click me!</button>

关于javascript - 从内部外部函数中删除监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36009959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com