如何在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); 
+5

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener –

+1

这是那些糟糕的弹出窗口,当你离开一个页面时,出现在互联网上的代码..真是糟糕的UI设计。 – Steve

您可以通过这样做:

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”),所以你应该检查它是否创建在它不应该创造一个新的听众。 –