gpt4 book ai didi

javascript - removeEventListener 不删除监听器

转载 作者:行者123 更新时间:2023-11-30 17:47:49 28 4
gpt4 key购买 nike

我的元素上有一个事件监听器,由于某种原因我不知道为什么没有删除。

我是这样设置的:

for (i = 0; i < data[0].length; i++) {
(function(i){
document.getElementById(i).addEventListener('click',
function(){var self = this; begin(i,self,1);},false);})(i);
}

以及监听器的移除:

function begin(i,el,type){
console.log('test');
el.removeEventListener('click',function(){begin(i,el,type);},false);
}

但由于某些原因事件监听器仍被分配....我在这里没有得到什么?

最佳答案

您需要保留对事件监听器的引用,以便您可以将其删除。如果愿意,您可以将其存储在 DOM 元素上。

for (var i = 0; i < data[0].length; i++) {
(function(i){
var el = document.getElementById(i);
el['click-listener'] = function () {
var self = this;
begin(i, self, 1);
};
el.addEventListener('click', el['click-listener'],false);
})(i);
}

function begin(i, el, type) {
el.removeEventListener('click', el['click-listener'], false);
}

关于javascript - removeEventListener 不删除监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760571/

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