2013-01-20 49 views
0

我有一個可排序和排序正常的元素列表。我也有一個可排序列表,它位於可排序列表之外。當我在droppable上放置物品時,打算執行復制操作,這意味着在此操作過程中進行排序是不可取的。jQuery UI Sortable + Droppable在DropPble上丟棄時都觸發

但是,不幸的是,將可排序拖動到外部droppable會導致sortable.update觸發。如果將一個可排序的元素拖到給定元素之外,是否有辦法讓所有可排序的拖放事件都被忽略?

我已經經歷了所有相關的可排序事件,並且我似乎無法找到任何可引用可排序元素的引用,以查看他們是否具有共同的父母。

這裏是展示一個小提琴:http://jsfiddle.net/6yhbG/

拖移排序1/2可放開導致sortable.sort火。

回答

3

OK終於到它的底部:sortable('cancel')需要從sortable.stop叫,我簡單地增加一個類的排序,所以它知道是否取消本身還是沒有:

$('div').droppable({ 
    drop: function(e, ui) { 
     ui.draggable.parent().addClass('dropped'); 
    } 
}); 

$('ul').sortable({ 
    stop: function(){ 
     if ($(this).hasClass('dropped')){ 
      $(this).sortable('cancel'); 
      $(this).removeClass('dropped'); 
     }   
    } 
}); 

與我更新示例:http://jsfiddle.net/6yhbG/1/

相關問題