37

1つのリスト項目だけでソート可能なjquery uiを無効にすることは可能ですか? コード例は次のとおりです。

<ul class="sortable">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>

たとえば、アイテムをクリックするとソート可能を無効にします。助けてください。

JavaScriptコードは次のとおりです。

$(document).ready(function(){
    $('.sortable li').click(function(){
        // Disable sortable for this item.............
    });
});
4

4 に答える 4

55

確かに、次のようなことを試してください:

 $(".sortable").sortable({
      items: "li:not(.unsortable)"
    });
 $(".sortable").disableSelection();

items オプションを使用すると、ソートできる項目とできない項目を指定できます。

jsFiddle の例

于 2013-03-12T19:57:44.777 に答える
8

私は知っています、この質問は古いです。しかし、私はあなたに正しい答えを教えます。アイテムをクリックして動的に無効化および有効化する方法。私は2016年に同じ問題を抱えているので:D

初めに。あなたがする必要があるのは、開始時に無効になるものをソート可能に設定することだけです。リストから無効な項目を削除するパラメーターを追加します (最初の初期化で必要でした):

var sortable = $("#sortable-sections");
sortable.sortable({
     items: 'li:not(.ui-state-disabled)',
     helper: 'clone',
});
sortable.disableSelection();

(例で使用されるブートストラップ)

次に、イベントリスナーを追加するだけです.onClickを使用したので、ここに例を示します:

sortable.find('li').click(function () {
    $(this).toggleClass('ui-state-disabled');
    $(this).hasClass('ui-state-disabled') ? $(this).removeData('sortableItem') : false;
});

Sortable-item は、sortableItem と呼ばれるデータがある場合にのみソート可能になるため、動的に無効になります。誰かの役に立てば幸いです。

乾杯!

于 2016-09-22T06:42:29.087 に答える