Ответ 1
Первый способ - это пример, приведенный в документации. Я только что протестировал его с одним из моих собственных проектов, и он отлично работает. Какие версии jQuery и jQuery UI вы используете? У меня есть 1.3.2 и 1.7.2 соответственно.
Я создал список сортировки jQueryUI, и он работает очень хорошо. В какой-то момент времени я хочу отключить дальнейшую сортировку и сохранить порядок вещей, так как он не может изменить его.
Он пробовал что-то подобное:
$('.sortable').sortable('disable');
и это:
$('.sortable').each(function() { $(this).sortable('disable'); });
и
$('.sortable').disable();
и
$('.sortable').cancel();
и различные комбинации всего этого. Все без успеха.
Может ли кто-нибудь сказать ne Правильный путь & trade; сделать это?
Обновление: Я использую jQuery 1.3.2 и jQueryUI 1.7.2. Возможной проблемой может быть то, что у меня есть два независимых сортируемых списка на странице, поэтому у меня есть sortable1 и sortable2 классы. Я на самом деле делаю:
$('.sortable2').sortable('disable');
Update2: проблема заключалась в том, что я использовал .sortable вместо #sortable. Теперь все работает отлично.
Первый способ - это пример, приведенный в документации. Я только что протестировал его с одним из моих собственных проектов, и он отлично работает. Какие версии jQuery и jQuery UI вы используете? У меня есть 1.3.2 и 1.7.2 соответственно.
$(ui.sender).sortable( "disable" )
Я был в процессе отладки:
http://plnkr.co/edit/uX6cNNiYoejYqwQicEhg?p=preview
function sortableEnable() {
$( "#sortable" ).sortable();
$( "#sortable" ).sortable( "option", "disabled", false );
// ^^^ this is required otherwise re-enabling sortable will not work!
$( "#sortable" ).disableSelection();
return false;
}
function sortableDisable() {
$( "#sortable" ).sortable("disable");
return false;
}
Надеюсь, что это поможет.
Спасибо Michal
Я сделал версию для списков, которые могут быть либо сортируемыми, либо редактируемыми.
Очень полезно для меня хотя бы!
function sortableEnable() {
$( "ul" ).sortable();
$( "ul" ).sortable( "option", "disabled", false );
$( "li" ).attr("contentEditable","false");
$( "li" ).css("cursor","move");
return false;
}
function sortableDisable() {
$( "ul" ).sortable("disable");
$( "li" ).attr("contentEditable","true");
$( "li" ).css("cursor","default");
return false;
}
$(function() {
sortableEnable();
});
$( ".selector" ).sortable( "disable" );
Хотя предлагаемые сообщения передо мной были полезными, они не решают, чего я пытаюсь достичь. Я хотел включить и выключить сортировку по нескольким областям и добавить возможность снова сделать контент.
Вот код, который я использовал:
function AddSortable() {
$("ul").sortable({
connectWith: "ul",
disabled: false
}).disableSelection();
return false;
};
function RemoveSortable(){
$("ul").sortable({
disabled: true
}).enableSelection();
$("li").attr("contentEditable","true");
return false;
}
Чтобы отключить sortable()
, вы можете использовать
$(".sortable").sortable("disable");
Чтобы включить/отключить нажатие кнопки с идентификатором toggleButton
$('#toggleButton').click(function() {
//check if sortable() is enabled and change and change state accordingly
// Getter
var disabled = $(".sortable").sortable( "option", "disabled" );
if (disabled) {
$(".sortable").sortable( "enable" );
}
else {
$(".sortable").sortable("disable");
}
});