gpt4 book ai didi

JavaScript:删除事件监听器

转载 作者:行者123 更新时间:2023-12-03 22:32:19 25 4
gpt4 key购买 nike

我正在尝试删除监听器定义中的事件监听器:

canvas.addEventListener('click', function(event) {
click++;
if(click == 50) {
// remove this event listener here!
}
// More code here ...
我怎么能那样做?这=事件...

最佳答案

您需要使用命名函数。

此外,click变量需要在处理程序之外才能递增。

var click_count = 0;

function myClick(event) {
click_count++;
if(click_count == 50) {
// to remove
canvas.removeEventListener('click', myClick);
}
}

// to add
canvas.addEventListener('click', myClick);

编辑:您可以关闭 click_counter像这样的变量:
var myClick = (function( click_count ) {
var handler = function(event) {
click_count++;
if(click_count == 50) {
// to remove
canvas.removeEventListener('click', handler);
}
};
return handler;
})( 0 );

// to add
canvas.addEventListener('click', myClick);

这样,您可以跨多个元素递增计数器。

如果您不希望这样,并且希望每个人都有自己的计数器,请执行以下操作:
var myClick = function( click_count ) {
var handler = function(event) {
click_count++;
if(click_count == 50) {
// to remove
canvas.removeEventListener('click', handler);
}
};
return handler;
};

// to add
canvas.addEventListener('click', myClick( 0 ));

编辑:我忘记了在最后两个版本中返回的处理程序的名称。固定的。

关于JavaScript:删除事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47353322/

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