我正在嘗試使用jsPlumb和jQuery-ui可拖動對象。它在很大程度上工作得很好,但我有一些看起來不太正確的東西。基本上,當我從屏幕上拖出一個元素時,它會恢復到原來的位置。不幸的是,當我恢復一個元素時,連接線留在我放棄元素的任何地方。jQuery UI-移動事件或恢復完成後調用函數
基本上這:
變爲這樣的:
然後,當我拖動元件節點自我糾正。我通過在這裏做這個小小的代碼來解決這個問題:
var outOfBounds = function(){
setTimeout(function(){
instance.repaintEverything();
},800);
return isOutOfBounds();
}
// make them draggable
instance.draggable($(node), {revert:outOfBounds, drag:instance.repaintEverything});
但是,那個setTimeout並不適合我。它似乎不是稱呼這種事情的恰當地方,也不是解決問題的恰當方法。我希望在元素移動後(或同時)執行某些操作,但在文檔或在線中我沒有看到類似內容。似乎沒有其他人甚至想要這樣做。我發現最近的是this question,,但我沒有使用droppable,寧願不必添加比我需要的更多的東西到我的項目。不幸的是,可拖動對象上的拖動選項僅在被用戶拖動時調用,而不是在其恢復時調用。
'stop' ..? – 2014-12-13 15:40:31
呵呵,這似乎工作。從文檔讀取的方式來看,我認爲在拖動完成時調用該方法,並且在恢復發生之後不會進行。你應該把它放在真實的答案中,以便除了它。 – 2014-12-13 15:44:47