我正在使用此代码
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 },
最佳答案
您需要使用stopPropagation()复选框的单击事件的函数,以防止在表头单元格上注册单击。调用 stopPropagation() 可防止事件向上冒泡到父元素,因此表头单元格不会知道您单击了它,并且不会重新排序。
它会是这样的:
$('th input').click(function(event) {
event.stopPropagation();
});
关于php - 单击特定标题时禁用排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121181/