web-dev-qa-db-ja.com

jQueryUI sortableでソートをオフにする方法は?

私は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を使用していたことです。今はすべてうまくいきます。

25
Milan Babuškov
$(ui.sender).sortable( "disable" )
34
isxaker

私はデバッグの過程にありました:

  1. クリックしてソート可能にします
  2. 終了(ソート可能無効)
  3. クリックしてもう一度並べ替え可能にします機能しません
  4. 解決策/回避策:無効オプションを明示的にfalseに設定します

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;
  }

お役に立てば幸いです。

11
Mars Robertson

ありがとうミハル

並べ替えや編集が可能なリストのバージョンを作成しました。

少なくとも私にとってはとても便利です!

    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();
    });
5
Chris Glasier

私の前に提案された投稿は役に立ちましたが、私が達成しようとしていたことは解決されませんでした。複数の領域で並べ替えを有効または無効にし、コンテンツを再び選択可能にする機能を追加したいと考えていました。

これが私が使ったコードです:

function AddSortable() {

    $("ul").sortable({
        connectWith: "ul",
        disabled: false
    }).disableSelection();  

    return false;
};

function RemoveSortable(){

    $("ul").sortable({ 
        disabled: true 
    }).enableSelection();   

    return false;
}
4
Andi

$( ".selector" ).sortable( "disable" );

から http://api.jqueryui.com/sortable/#option-disabled

2
isync

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");
  }
});
1
Rahul Gupta

(必要に応じて)すべてのソート可能オブジェクトを無効にしたい場合は、sortablesクラス「ui-sortable」をセレクターとして使用できます。

例えば

$(".ui-sortable").sortable("enable");
$(".ui-sortable").sortable("disable");
0
VorTechS

最初の方法は documentation で示されている例です。私は自分のプロジェクトの1つでテストしたところ、問題なく動作しました。どのバージョンのjQueryおよびjQuery UIを使用していますか?私はそれぞれ1.3.2と1.7.2を持っています。

0
shuckster