gpt4 book ai didi

javascript - 如何删除 Javascript 中的事件监听器?

转载 作者:行者123 更新时间:2023-11-29 17:39:32 33 4
gpt4 key购买 nike

我正在尝试在我的脚本中实现延迟滚动,它一直运行良好,直到它结束,我想阻止它发出额外的请求。

我已经使用以下代码向我的代码添加了一个事件监听器:

window.addEventListener("scroll", _.throttle(checkScroll, 500));

但是,当我尝试删除它时,它似乎仍在继续监听并根据事件采取行动。

我试过:

if (json.articles.length == 0) {
$(".articles").append("<br>That's all folks!");
window.removeEventListener("scroll", _.throttle(checkScroll, 500));
}

if (json.articles.length == 0) {
$(".articles").append("<br>That's all folks!");
window.off("scroll");
}

但似乎都不起作用。

最佳答案

如果您使用纯 Javascript 添加事件监听器,则删除它的唯一方法是保存对调用 _.throttle 结果的引用。你传递给addEventListener :

const handler = _.throttle(checkScroll, 500);
window.addEventListener("scroll", handler);
// ...
window.removeEventListener("scroll", handler);

你只能做类似 window.off('scroll') 的事情如果您还使用 jQuery 添加处理程序(例如 $(window).on(...) 然后是 $(window).off(...) )。如果您使用 Javascript 添加处理程序,jQuery 的 off将无法使用。

关于javascript - 如何删除 Javascript 中的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53941274/

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