我正在使用此代码
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 },
答案 0 :(得分:3)
您需要使用click事件的stopPropagation()功能来复选框,以防止点击在表格标题单元格上注册。调用stopPropagation()可防止事件冒泡到父元素,因此表头单元格不会知道您单击它,也不会重新排序。
这将是这样的:
$('th input').click(function(event) {
event.stopPropagation();
});