2009-07-23 4 views
22

jQueryUIソート可能なリストが実装されていて、本当にうまく動作します。ある時点では、ソートを無効にして、アイテムの順序を変更せずにそのまま維持したいと考えています。jQueryUIソートでソートをオフにするにはどうすればいいですか?

$('.sortable').sortable('disable'); 

と、この:

$('.sortable').each(function() { $(this).sortable('disable'); }); 

と:

$('.sortable').disable(); 

と:

$('.sortable').cancel(); 

それは何か、これを試してみました

とそのすべての組み合わせ。すべて成功なし。

誰でも教えてくださいne 正しい方法 ™それを行うには?

更新:私はjQuery 1.3.2とjQueryUI 1.7.2を使用しています。考えられる問題は、ページに2つの独立したソート可能なリストがあることです。ソート可能なクラスとソート可能なクラスがあります。私は実際にやっている:

$('.sortable2').sortable('disable'); 

をアップデート2:は問題ではなく#sortableの.sortable使ってくれました。すべて今はうまくいく。

+1

奇妙な。 docs say '.sortable( 'disable')' http://docs.jquery.com/UI/Sortable#method-disable – seth

+1

最初の方法は[documentation] [1]の例です。私はちょうど私自身のプロジェクトの1つでそれをテストし、うまく動作します。どのバージョンのjQueryとjQuery UIを使用していますか?私はそれぞれ1.3.2と1.7.2を持っています。 [1]:http://jqueryui.com/demos/sortable/#method-cancel – shuckster

+0

「正しい道」の商標は+1です。 – Andy

答えて

31
$(ui.sender).sortable("disable") 
+1

あなたは兄弟を揺する... –

2

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

私は、デバッグの過程にあった:作るためにソート可能な

  • 仕上げ(ソート可能無効)
  • クリックをする

    1. クリック再びソート可能
    2. ソリューション/回避策は動作しませんでした:設定無効オプションを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; 
        } 
    

    希望に役立つこと。ミハル

  • 5

    から

    4

    おかげで私は、ソート可能または編集可能ないずれかになりますリストのバージョンを作りました。

    私にとっては非常に便利です!

    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(); 
        }); 
    
    +0

    のために働いて、コンテンツが編集可能なときに青い枠線を隠すために、このCSSスタイルを使用してください:[contenteditable]:focus {outline:0px solid transparent; } –

    1

    私の前に示唆した記事が有用であった一方で、彼らは私が達成しようとしていたものを解決しませんでした。私は、複数の領域にまたがってソート可能にしたり、コンテンツを選択可能にする機能を追加したりしたいと思っていました。

    function AddSortable() { 
    
        $("ul").sortable({ 
         connectWith: "ul", 
         disabled: false 
        }).disableSelection(); 
    
        return false; 
    }; 
    
    function RemoveSortable(){ 
    
        $("ul").sortable({ 
         disabled: true 
        }).enableSelection(); 
    
        $("li").attr("contentEditable","true"); 
    
        return false; 
    } 
    
    +0

    ソート可能( '無効')は私にとっては機能しませんが、無効になっているオブジェクトはtrueです。 –

    +0

    'contentEditable'の使い方は? –

    0

    を使用すると、ID toggleButton

    と、ボタンのクリック時に有効/無効に切り替えるには

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

    を使用することができますsortable()を無効にするには:ここで

    は、私が使用したコードです

    $('#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"); 
        } 
    }); 
    
    関連する問題