对除connectWith之外的可排序元素禁用排序

时间:2013-01-13 12:45:19

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

这是否可以禁用'sortable'元素的排序但排序仍然可以使用'connectWith'?

4 个答案:

答案 0 :(得分:3)

这会将list1中的一个元素返回到它的原始位置,如果它没有在list2上删除(我称之为自我丢弃)。

$("#list1").sortable({
    connectWith: ".connected-fields",
    beforeStop: function(event, ui) {
        // Don't allow resorting in list1... would call cancel here, but there is a jquery 1.7 bug so we
        // need to do the check here but do the cancel in "stop" below. @see http://bugs.jqueryui.com/ticket/6054
        $(this).sortable("option", "selfDrop", $(ui.placeholder).parent()[0] == this);
    },
    stop: function(event, ui) {
        var $sortable = $(this);
        if ($sortable.sortable("option", "selfDrop")) {
            $sortable.sortable('cancel');
            return;
        }
    }
});

$("#list2").sortable({
    connectWith: ".connected-fields"
});

答案 1 :(得分:0)

然后我会删除原始的可排序逻辑,并应用附加到单个可排序的类。因此,例如,您要排序的两个列表有三个函数。如果sort = disabled,则删除具有conenctWith选项的可排序类,并将单个排序类应用于您连接的列表。如果要停止那个,那么对另一个做同样的事。

示例:

$('sortBoth').sortable({connectWith: $('.sortListToConnect)});

$('.sortList2').sortable();

$('.sortList3').sortable();

相应地删除或添加每个列表的类,以了解它的运行方式。一种处理它的简单方法。希望我能够以一种快速的方式表达清楚。快乐的编码:)

答案 2 :(得分:-1)

您可以尝试disable sortable

的此代码
$( ".selector" ).sortable( "disable" );

您可以从Link

了解更多信息

disable方法的Link

答案 3 :(得分:-1)

您可以从自我排序中取消左列中的项目,并仍然将它们用于connectWith

http://api.jqueryui.com/sortable/#option-cancel