列表项上的可排序和可拖动行为

时间:2013-10-17 13:22:39

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

我来这里是因为我在使用jQuery UI的可排序/可拖动/可放置的东西时遇到了麻烦。

我正在尝试做类似iTunes播放列表的操作(当您更改曲目列表的顺序或将曲目移动到另一个播放列表时) 我的想法是我有一个轨道列表(在a中),我希望这个列表是可排序的,这是最简单的部分。事实上,我还有第二个列表(播放列表),我希望轨道可以拖动到那些“播放列表”项目来做某事。

这是一个例子:http://jsfiddle.net/MSGhf/1/

(sortable正如我想要的那样工作,黑线只是<div class="plholder"></div>

但是当你开始拖动轨道时,可排序的工作正常。但是当您将轨道移出可拖动时,新订单会保留,因此拖动播放列表上的曲目也会改变曲目列表顺序,这是一个问题。

所以当轨道离开时,我不知道如何阻止可排序。

如果您有任何想法:)

谢谢!

1 个答案:

答案 0 :(得分:0)

啊,好的,我知道发生了什么。这是你想要做的(工作示例,这里:http://jsfiddle.net/mori57/L3CF8/1/

    $(".droppable").droppable({
        tolerance: "pointer",
        drop:function(){
            // You need to tell your sortable to cancel 
            // the last drag/drop interaction
            $("ul").sortable("cancel");
            alert("Do something on drop ...");   
        }
    });