私はjQueryUIのソート可能なリストを実装しましたが、それは本当にうまくいきます。ある時点で、ユーザーが変更できないように、それ以上のソートを無効にし、アイテムの順序をそのままにしたいと考えています。
それはこれを試しました:
$('.sortable').sortable('disable');
この:
$('.sortable').each(function() { $(this).sortable('disable'); });
そして:
$('.sortable').disable();
そして:
$('.sortable').cancel();
そして、それらすべてのさまざまな組み合わせ。すべて成功せず。
誰でもね 正しい方法™それを行うには?
pdate: jQuery 1.3.2およびjQueryUI 1.7.2を使用しています。考えられる問題は、ページに2つの独立したソート可能なリストがあるため、sortable1クラスとsortable2クラスがあることです。私は実際にやっています:
$('.sortable2').sortable('disable');
pdate2:問題は、私が#sortableではなく.sortableを使用していたことです。今はすべてうまくいきます。
$(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;
}
お役に立てば幸いです。
ありがとうミハル
並べ替えや編集が可能なリストのバージョンを作成しました。
少なくとも私にとってはとても便利です!
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();
});
私の前に提案された投稿は役に立ちましたが、私が達成しようとしていたことは解決されませんでした。複数の領域で並べ替えを有効または無効にし、コンテンツを再び選択可能にする機能を追加したいと考えていました。
これが私が使ったコードです:
function AddSortable() {
$("ul").sortable({
connectWith: "ul",
disabled: false
}).disableSelection();
return false;
};
function RemoveSortable(){
$("ul").sortable({
disabled: true
}).enableSelection();
return false;
}
$( ".selector" ).sortable( "disable" );
sortable()
を無効にするには、
$(".sortable").sortable("disable");
ID 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");
}
});
(必要に応じて)すべてのソート可能オブジェクトを無効にしたい場合は、sortablesクラス「ui-sortable」をセレクターとして使用できます。
例えば
$(".ui-sortable").sortable("enable");
$(".ui-sortable").sortable("disable");
最初の方法は documentation で示されている例です。私は自分のプロジェクトの1つでテストしたところ、問題なく動作しました。どのバージョンのjQueryおよびjQuery UIを使用していますか?私はそれぞれ1.3.2と1.7.2を持っています。