jQuery UI Sortable + Droppable在droppable上删除时都会触发

时间:2013-01-20 05:45:04

标签: jquery-ui jquery-ui-sortable jquery-ui-droppable

我有一个可排序和排序的元素列表。我还有一个可放置在可排序列表之外的droppable。当我在droppable上删除项目时,它意图执行复制操作,这意味着在此操作期间排序是不可取的。

不幸的是,然而,将可排序拖动到外部droppable会导致sortable.update触发。如果将可排序项拖到给定元素之外,是否有办法忽略所有可排序的拖放事件?

我已经浏览了所有相关的可排序事件,而且我似乎无法找到对可排序元素的任何引用,以便查看它们是否有共同的父母。

这是一个演示的小提琴:http://jsfiddle.net/6yhbG/

将可排序的1/2拖动到droppable会导致sortable.sort触发。

1 个答案:

答案 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/