JQuery отключить сортируемый - PullRequest
0 голосов
/ 29 августа 2009

Я хочу отключить сортировку исходного_элемента. Как я могу это сделать?

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 ]

7 голосов
/ 29 августа 2009

В вашем примере с кодом моего предыдущего ответа отключить сортировку используйте

$ (ui.sender) .sortable ( 'отмена');

Но я думаю, что для отключения движения лучше предотвратить движение в start событие и отключить его как:

$ (это) .sortable ( 'отмена');

P.S .: Вы создаете новый вопрос с моим кодом, не отмечая мой ответ как принятый. Не понимаю ваше поведение ..

1 голос
/ 27 ноября 2013

У него было чертовски много времени на этом ..

$(ui.sender).sortable('cancel'), кажется, возвращается к своему предыдущему местоположению, но оставляет его сортируемым.

Чтобы удалить сортировку (и снова разрешить редактирование), я использовал этот код:

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

Измените .sortable на обозначение вашего элемента. Я сделал это по классу для нескольких. Это были 4 события, которые я обнаружил, созданные программой сортировки. Вы можете возобновить сортировку по оригинальной команде.

очень удобно, а?

...