我有一些简单的代码,但目前它不会在第一次调用后删除侦听器。我怎样才能做到这一点?或者我是否真的需要在通知后对 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);
Run Code Online (Sandbox Code Playgroud)
更新代码每次右键单击仍然相同的消息
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);
Run Code Online (Sandbox Code Playgroud)
您需要通过与添加相同的函数来删除。
做到这一点的简单方法是给函数一个名称并将名称传递给 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);
Run Code Online (Sandbox Code Playgroud)
请参阅https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.removeEventListener以获得良好的概述
强制性小提琴:http : //jsfiddle.net/w1kzLkoL/
在 chrome、firefox 和 IE10 中测试
| 归档时间: |
|
| 查看次数: |
1321 次 |
| 最近记录: |