2010-06-17 75 views
3

我有一種感覺,我要麼誤解'停止'事件,要麼做得不正確,但它似乎被多次調用,而元素綁定被拖動。jQuery UI Draggable「停止」事件調用次數太多?

makeAllDragable = function() { 
    $(".test-table").draggable({ 
     start: function (event, ui) { $(this).click(); }, 
     stop: function (event, ui) { foo() } 
    }).click(function() { 
     selectTable($(this)); 
    }); 
} 

foo = function() { 
    alert("test"); 
} 

在這個例子中,foo被調用了大約30次,不應該只是當我釋放可拖動的時候? jQuery文檔實際上並不是說某個地方或另一個地方。

+1

適合我。當釋放鼠標按鈕時調用'.stop()'。 http://jsfiddle.net/jRjup/ – user113716 2010-06-17 16:33:10

+0

該示例給我一個來自網站的JS錯誤,表示「控制檯未定義」形式的網站,所以我無法檢查出來。 – 2010-06-17 17:00:58

+1

只需註釋'console'行。我只需要創建'selectTable',這樣你的'c​​lick'就可以調用一個函數。 http://jsfiddle.net/jRjup/2/ – user113716 2010-06-17 17:11:28

回答

2

事實證明,上面的代碼,我在我原來的問題寫了是不是我用的工作,我其實是有富()稱爲像這樣:

makeAllDragable = function() { 
    $(".test-table").draggable({ 
     start: function (event, ui) { $(this).click(); }, 
     stop: function (event, ui) { foo() } 
    }).click(function() { 
     foo(); /*difference here*/ 
    }); 
} 

無論出於何種原因,拖動它提出當函數也出現在stop()事件中時,會重複使用click()函數。至少在表面上看起來至少是這樣。