gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 11:50:54 24 4
gpt4 key购买 nike

我有这个代码:

    chrome.tabs.onUpdated.addListener(function(callback){
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

eventer(messageEvent,function(e) {//script});

});

我想在第二个监听器触发后移除它(按时间顺序第一个首先触发,然后第二个在收到消息时触发)。

我真的不明白 .removeEventListener 函数的语法以及如何在我的示例中应用它。我已经读到它不适用于监听器中的匿名函数,所以我必须先声明这些函数,对吗?

感谢您的帮助。

最佳答案

target.removeEventListener(type, listener[, options]);

引用: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener


编辑:

var handler;
chrome.tabs.onUpdated.addListener(function(callback)
{
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
handler = function(e)
{
// Script
};
eventer(messageEvent, handler);
});

var cond = window.addEventListener;
window[cond ? 'removeEventListener' : 'detachEvent'](cond ? 'message' : 'onmessage', handler);

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

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