如何在JS中删除这个eventListener?
问题描述:
如何在JS中删除这个eventListener?如何在JS中删除这个eventListener?
我尝试 - 不工作
document.addEventListener("mouseleave", function(e){
if(e.clientY < 0) {
$('.intent-exit-popup').show("slow");
};
document.removeEventListener("click", function(){
$(".close-popup").click(function() {
$('.intent-exit-popup').hide("slow");
})
}, true);
}, true);
答
您可以通过这样做:
var mouseLeaveFired = false;
if (!mouseLeaveFired) {
console.log('mouseLeave')
document.addEventListener("mouseleave", function(e){
mouseLeaveFired = true;
e.target.removeEventListener('mouseleave', false)
});
}
+0
我不知道我在做什么错,但它似乎并没有工作你的解决方案 –
+0
在你的代码删除监听器后,你在这里创建一个新的监听器:document.addEventListener(“mouseleave”),所以你应该检查它是否创建在它不应该创造一个新的听众。 –
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener –
这是那些糟糕的弹出窗口,当你离开一个页面时,出现在互联网上的代码..真是糟糕的UI设计。 – Steve