1

jQuery UI で並べ替え可能な行を含むテーブルを作成しようとしています。私はすでにこれを機能させていますが、チェックボックスに基づいて一部の行 (すべてではない) のみを並べ替えるつもりです。

コードをhttp://jsfiddle.net/detesto/7Tcgc/3/にアップロードしました

チェックボックスが変更されたら、並べ替え可能な行をトリガーするクラスを追加または削除します。問題は、削除すると期待どおりに機能しないことです。

また、ソートブルでリフレッシュを試みました$("#selector").sortable("refresh");が、これもうまくいきません。

ユーザーが無効な行をドラッグした場合にイベントをキャンセルすることで機能していますが、これを完全に防ぎたいと思います。

これを防ぐことはできますか?

前もって感謝します。

4

1 に答える 1

2

このコードに変更

$(document).ready(function () {
    clearTimeout(timeoutOnce);
    timeoutOnce = setTimeout(reorderRows, 300);
    $("#fileTable tbody").sortable({
        helper: fixHelper,
        items: "> tr.doSort",
        cancel: ".noSort"   //---- add
    }).disableSelection();
}).on("click", ".enableDisable", function () {
    if ($(this).is(":checked")) {
        $(this).closest("tr").removeClass("noSort").addClass("doSort");
        //$("#fileTable tbody").sortable("refresh"); // --- remove
    } else {
        $(this).closest("tr").addClass("noSort").removeClass("doSort");
        //$("#fileTable tbody").sortable("refresh"); // --- remove
    }
});
于 2013-11-01T01:14:25.403 に答える