2017-07-20 134 views
-2

嗨我的小項目有一些問題。我想在mouseup事件調用後停止執行mousedown和mousemove事件。但在此之後,mousedown事件必須再次激活。它應該像重置一樣工作。下面是代碼如何停止執行eventlisteners

function quotesMouseDown(event) { 
     var isMouseDown = true; 
     document.getElementById("quotes").addEventListener("mouseup", 
     function() { 
       isMouseDown = false; 
      }); 
      if (isMouseDown == false) { 
       return false; 
      } 
      else { 
        var mDownX = event.pageX; 

      document.getElementById("quotes").addEventListener("mousemove", quotoesMouseMove); 

       function quotoesMouseMove(event) { 
        var mMoveX = event.pageX; 
        console.log(mMoveX); 
        console.log(mDownX + "cos") 
        } 
     } 
      console.log(isMouseDown); 
    } 

document.getElementById("quotes").addEventListener("mousedown", quotesMouseDown); 
+0

請編輯您的問題,並添加適當的縮進你的代碼,這是很難讀,現在。此外,缺少實際的問題/問題描述。請閱讀[問]。 – CBroe

+1

使用removeEventListener刪除像addEventListener添加的事件。 – error404

+0

不要在'if-else()'中聲明函數會引起提升問題 – charlietfl

回答

0

只是detachmousedown回調在mouseup回調結束:

document.getElementById("quotes").addEventListener("mouseup", function() { 
    isMouseDown = false; 

    document.getElementById("quotes").removeEventListener("mousedown", quotesMouseDown); 
    });