单击特定标头时禁用排序

时间:2013-06-15 07:17:47

标签: php jquery datatables

我正在使用此代码

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 },

1 个答案:

答案 0 :(得分:3)

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

这将是这样的:

$('th input').click(function(event) {
    event.stopPropagation();
});