gpt4 book ai didi

javascript - 如何删除由 addEventListener 以事件对象作为参数绑定(bind)的匿名函数

转载 作者:行者123 更新时间:2023-11-28 05:19:34 25 4
gpt4 key购买 nike

例如,

document.addEventListener('keyup',function(ev){
if(ev.ctrlKey)dosomething();
},false);

有没有办法去掉匿名函数?

最佳答案

您可以自己编写一个 addEventListener 的小接口(interface),如下所示:

function addEventListener(elt, event, fn) {
elt.addEventListener(event, fn);
return function() {
elt.removeEventListener(event, fn);
};
}

这将返回一个可用于删除事件监听器的函数,无论传递什么函数。

要使用这个:

var remove = addEventListener(body, 'click', () => alert('Hi Mom'));

remove();

要在事件监听器触发后立即删除它,您只需要:

function addEventListenerOnce(elt, event, fn) {
elt.addEventListener(event, function listener() {
fn(e);
elt.removeEventListener(elt, listener);
});
}

或者,您可以使用某些浏览器中正在实现的新的 {once: true} 选项。

关于javascript - 如何删除由 addEventListener 以事件对象作为参数绑定(bind)的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40668396/

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