jquery禁用可排序

时间:2009-08-29 11:48:20

标签: jquery jquery-ui-sortable

我想禁用source_element的排序。我可以这样做吗?

function dropMembers(){
        $("ul.present").sortable({
            connectWith: 'ul',
            containment: 'window',
            items: 'li:not(.notSortable)'
        });

        $("ul.usrlist").sortable({
            connectWith: 'ul',
            dropOnEmpty: true,
            containment: 'window',
            update: function(event, ui) {
                //Element ready to be dropped to new place
                   source_element = $(ui.item).attr("id");
                   alert(source_element);
                   source_element1=source_element.split('_');
                   alert(source_element1);
                   if(source_element[1]==GLOBAL_MY_ID){
                       // I want to disable sorting of source_element here
                   }
                   // here is your selected item  }
            }
//             sort: function(event, ui) {
//             var usr_result=$("ul.usr").sortable('toArray');
//             //alert(ui.sortable);
//            }
        });

        $("#MAIN_USER_LIST,#USER_PRESENT_LIST").disableSelection();

}

2 个答案:

答案 0 :(得分:7)

在您的示例中,我的主要答案代码是禁用排序,请使用

  

$(ui.sender).sortable( '取消');

但我认为,对于禁用移动更好的方法是阻止开始事件中的移动并将其禁用为:

  

$(本).sortable( '取消');

P.S。:您使用我的代码创建了新问题而没有标记我接受的答案。不明白你的行为..

答案 1 :(得分:1)

在这个问题上有一段时间......

$(ui.sender).sortable('cancel')似乎恢复到之前的位置,但让它可以排序..

要删除排序(并允许再次编辑),我使用了以下代码:

$('.sortable').sortable('disable'); 
$('.sortable').disableSelection('disabled'); 
$('.sortable').unbind('click');
$('.sortable').unbind('mousedown');
$('.sortable').unbind('mouseup');
$('.sortable').unbind('selectstart');

将.sortable更改为元素的指示符。我是按类进行多次的。这些是我发现的排序例程创建的4个事件。您可以通过原始命令重新激活排序。

非常方便,嗯?