我在jQuery中有两个连接的可排序对象。它们分别称为sortable1和sortable2。从sortable2中取出元素时,将其放入sortable1中。开始拖动后,用户不应将元素移回sortable2(正在创建一个克隆以填充空白。)因此,一旦开始拖动,如何在保持原样的情况下又不能使其退回到sortable2 sortable1中的全部功能?

感谢您的任何帮助!

这是脚本:

<script>
$(function() {
    $( "#sortable1" ).sortable({
        connectWith: ".connectedSortable"
    }).disableSelection();
            $('.ui-state-highlight').click(function(){
                    if ($(this).parent().attr("id")!="sortable2") {
                     $(this).remove();
                    }
            });
            $( "#sortable2" ).sortable({
        connectWith: ".connectedSortable",
                    helper: function(e,li) {
                                    copyHelper=li.clone(true,true).insertAfter(li);
                                    return li.clone(true,true);
                                }
    }).disableSelection();
});
</script>


这是列表后面的html代码段:

<div id="symbolbay">
     <p>Drop symbols here</p>
     <ul id="sortable1" class="connectedSortable"></ul>
</div>
<ul id="sortable2" class="connectedSortable">
    <li class="ui-state-highlight">Click me to delete only me</li>
    <li class="ui-state-highlight">Click me to delete only me</li>
...There are a whole bunch more, finally ending in...
</ul>

最佳答案

connectWith参数是一种单向关系,如此处所示:
http://api.jqueryui.com/sortable/#option-connectWith

因此,只需指定#sortable2与#sortable1连接,但将#sortable1中的参数保留为空白即可解决问题。

就像是:

$(function() {
    $( "#sortable2" ).sortable({
        connectWith: "#sortable1"
    })
    $( "#sortable1" ).sortable({
    })
});


http://jsfiddle.net/69vPK/2/

10-07 23:25