gpt4 book ai didi

javascript - 从处理函数中移除一个窗口事件监听器

转载 作者:行者123 更新时间:2023-12-03 16:37:58 25 4
gpt4 key购买 nike

我有一个函数 begin,它声明一个带有处理程序函数 check 的 addEventListener。现在,当在 check 中满足特定条件时,我想删除 eventListener。

我的代码:

function begin(data){
//code
window.addEventListener('keyUp', check(data));
}

function check(data){
return function check1(event){
//code
if(condition) window.removeEventListener('keyUp', check(data));
}
}

一切正常,但它没有删除 EventListener

最佳答案

您必须使 check(data) 响应函数对于处理程序是唯一的,就像将它传递给变量一样。否则,每次调用 check(data) 并尝试删除错误的函数时,您都会得到另一个函数。

var handler;

function begin(data) {
handler = check(data);
window.addEventListener('keyUp', handler);
}

function check(data) {
return function check1(event) {
if(condition) {
window.removeEventListener('keyUp', handler);
}
}
}

关于javascript - 从处理函数中移除一个窗口事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45344233/

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