2015-12-02 59 views
0

爲什麼toggleSidebar()函數沒有在第一次點擊元素時調用,僅在第二次點擊等?爲什麼函數不能在第一次點擊時調用? [jQuery]

$(".image .image-inner .zoomer-holder").click(function() { 

     var isDragging = false; 

     $(".image .image-inner .zoomer-holder") 
     .mousedown(function() { 
      isDragging = false; 
     }) 
     .mousemove(function(e) { 
      isDragging = true; 
     }) 
     .mouseup(function(e) { 


      var wasDragging = isDragging; 
      isDragging = false; 

      if (!wasDragging) { 
       console.log("TAP"); 

       // **** FUNCTION **** // 
       toggleSidebar();  

       $(".image .image-inner .zoomer-holder").unbind("mouseup"); 

      } else { 
       console.log("DRAG"); 
       $(".image .image-inner .zoomer-holder").unbind("mouseup"); 
       $(".image .image-inner .zoomer-holder").unbind("mousedown"); 
       $(".image .image-inner .zoomer-holder").unbind("mousemove");        
      } 
     }); 
    }); 

回答

0

因爲你有你的定義嵌套,請嘗試移動.click()函數內部的$()。mousedown ..等調用。

+0

對不起,我是jQuery的新手:是的,如果我把它移出來,它會在第一次點擊時被調用,但是第二次點擊時它不會被調用......謝謝! –

+0

這可能是因爲正在調用mousemove並將isDragging設置爲true。使用瀏覽器開發人員工具在這些事件上添加斷點以查看此信息,希望有所幫助 –

相關問題