1

我在 jQuery 中有两个连接的 sortables。它们被称为 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>
4

2 回答 2

1

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

因此,只需指定 #sortable2 与 #sortable1 连接,但将 #sortable1 中的参数留空即可。

就像是:

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

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

于 2012-12-14T01:31:31.650 回答
0
$(function() {
    $( "#sortable2" ).sortable({
        connectWith: "#sortable1"
    }).disableSelection();

});

试试这个

于 2018-05-09T09:38:10.330 回答