2017-08-29 66 views
-4

如何在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

回答

0

您可以通過這樣做:

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」),所以你應該檢查它是否創建在它不應該創造一個新的聽衆。 –