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

当表格显示时,我想按 desc 排序,这没问题。但是当我单击复选框以选中每一行的所有复选框时,它再次排序并且选中变为取消选中....我可以删除排序时有人吗单击标题复选框?我知道可以通过这种方式禁用常见的排序,但这不是我的要求

{ "bSortable": false },
4

1 回答 1

3

您需要为复选框使用单击事件的stopPropagation()函数,以防止单击也注册在表格标题单元格上。调用 stopPropagation() 可以防止事件冒泡到父元素,因此表格标题单元格不会知道您单击了它,也不会重新排序。

它会是这样的:

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