我有一个可排序和排序的元素列表。我还有一个可放置在可排序列表之外的droppable。当我在droppable上删除项目时,它意图执行复制操作,这意味着在此操作期间排序是不可取的。
不幸的是,然而,将可排序拖动到外部droppable会导致sortable.update触发。如果将可排序项拖到给定元素之外,是否有办法忽略所有可排序的拖放事件?
我已经浏览了所有相关的可排序事件,而且我似乎无法找到对可排序元素的任何引用,以便查看它们是否有共同的父母。
这是一个演示的小提琴:http://jsfiddle.net/6yhbG/
将可排序的1/2拖动到droppable会导致sortable.sort
触发。
答案 0 :(得分:4)
确定终于到了底层:sortable('cancel')
需要从sortable.stop
调用,我只是在sortable中添加一个类,以便它知道是否取消自己:
$('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/