Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui jQuery UI Sortable+Dropable在Dropable上丢弃时都会触发_Jquery Ui_Jquery Ui Sortable_Jquery Ui Droppable - Fatal编程技术网

Jquery ui jQuery UI Sortable+Dropable在Dropable上丢弃时都会触发

Jquery ui jQuery UI Sortable+Dropable在Dropable上丢弃时都会触发,jquery-ui,jquery-ui-sortable,jquery-ui-droppable,Jquery Ui,Jquery Ui Sortable,Jquery Ui Droppable,我有一个元素列表,这些元素是可排序的,并且排序很好。我还有一个位于可排序列表之外的下拉列表。当我在Dropable上放置项目时,它旨在执行复制操作,这意味着在此操作期间不需要排序 但不幸的是,将sortable拖到外部可拖放文件会导致触发sortable.update。如果一个可排序的拖放事件被拖到给定元素之外,是否有一种方法可以忽略所有可排序的拖放事件 我已经浏览了所有相关的可排序事件,但我似乎找不到任何对可排序元素的引用,以便查看它们是否有共同的父元素 这里有一把小提琴来演示: 将sorta

我有一个元素列表,这些元素是可排序的,并且排序很好。我还有一个位于可排序列表之外的下拉列表。当我在Dropable上放置项目时,它旨在执行复制操作,这意味着在此操作期间不需要排序

但不幸的是,将sortable拖到外部可拖放文件会导致触发sortable.update。如果一个可排序的拖放事件被拖到给定元素之外,是否有一种方法可以忽略所有可排序的拖放事件

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

这里有一把小提琴来演示:


将sortable 1/2拖动到Dropable会导致sortable.sort启动。

OK终于找到了问题的症结所在:sortable.stop需要调用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');
        }           
    }
});

我的更新示例位于:

OK终于找到了问题的症结所在:需要从sortable.stop调用sortable'cancel',我只是在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');
        }           
    }
});
我的更新示例位于: