gpt4 book ai didi

javascript - 从事件监听器中调用 removeEventListener?

转载 作者:行者123 更新时间:2023-11-30 08:40:26 31 4
gpt4 key购买 nike

我有一些简单的代码,但目前它不会在第一次调用后删除监听器。我怎样才能做到这一点?还是我真的需要在收到通知后对 var 集添加冗余 if/else 检查?

    document.addEventListener("contextmenu", function(e){
alert("Please remember this is someone's art! Give credit where it is deserved!");
document.removeEventListener("contextmenu", function(e){
console.log('User has been warned...');
});
}, false);

更新的代码 每次右键单击仍然显示相同的消息

    document.addEventListener("contextmenu", function msg(e){
alert("Please remember this is someone's art! Give credit where it is deserved!");
e.removeEventListener("contextmenu", msg, false);
}, false);

最佳答案

您需要传递与添加相同的函数来移除。

做到这一点的简单方法是为函数命名并将该名称传递给 removeEventListener():

 document.addEventListener("contextmenu", function me(e){
alert("Please remember this is someone's art! Give credit where it is deserved!");
document.removeEventListener("contextmenu", me, false);
}, false);

参见 https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.removeEventListener一个好的概述

强制 fiddle :http://jsfiddle.net/w1kzLkoL/

在 chrome、firefox 和 IE10 中测试

关于javascript - 从事件监听器中调用 removeEventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27032597/

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