1

私はこのコードを使用しています

var oTable = $('#tbl').dataTable({
    "aaSorting": [
        [0, "desc"]
    ],
        "aoColumns": [
    null,
    null],
        "sDom": 'R<>rt<ilp><"clear">',
        "iDisplayLength": 25,
        "iDisplayStart": 0,
        "bProcessing": true,
        "bServerSide": true,
        "sPaginationType": "full_numbers",
        "sAjaxSource": "processing.php",
        "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
        var id = aData[0];
        $(nRow).attr("id", id);
        // Bold the grade for all 'A' grade browsers
        if (aData[0] != 0) {
            $('td:eq(0)', nRow).html('<input type="checkbox" name="delid[]" value="' + aData[0] + '" />');
        }

    });
return nRow;
}
});

テーブルが表示されたら、降順でソートしたいのですが、これは問題ありません。しかし、チェックボックスをクリックして、各行のすべてのチェックボックス情報を選択すると、再度ソートされ、チェックがオフになります....ヘッダーのチェックボックスをクリックしますか?この方法で一般的な並べ替えを無効にできることは知っていますが、それは私の要件ではありません

{ "bSortable": false },
4

1 に答える 1

3

チェックボックスのクリック イベントのstopPropagation()関数を使用して、クリックがテーブル ヘッダー セルにも登録されないようにする必要があります。stopPropagation() を呼び出すと、イベントが親要素にバブリングするのを防ぐため、テーブル ヘッダー セルはクリックされたことを認識せず、再ソートされません。

次のようになります。

$('th input').click(function(event) {
    event.stopPropagation();
});
于 2013-06-15T07:28:38.023 に答える