如何通过单击数据表中的列名来防止排序?
How can I prevent ordering by click on column names in datatables?
我想防止通过单击列名更改顺序。
我试过了:
"ordering": false,
这实际上删除了点击 possibility.But 然后排序不再有效。我想保留它,只阻止用户点击列名。我尝试了一切,例如:
$(".sorting").addClass('sorting_disabled').removeClass('sorting');
或
$(".sorting").click(function(){return false;});
或
$( ".sorting" ).click(function( event ) {
event.preventDefault();
});
没有任何效果。
您可以使用以下内容:
$(document).ready(function() {
var table = $('#example').DataTable( {
"initComplete": function(settings, json) {
$('th.sorting').off();
$("th.sorting").css('cursor', 'default');
$("th.sorting_asc").css('cursor', 'default');
$("th.sorting_desc").css('cursor', 'default');
}
} );
// to show sorting is still possible:
table.order.listener( '#mysorter', 0 );
} );
这会从 table 的列 headers 中删除排序事件(jQuery off()
函数),并确保鼠标图标不会变为滚动标题时手。
它将箭头留在原处,因此您可以看到哪种排序有效。
为了显示仍然可以排序,我在页面中添加了一个按钮:
<button id="mysorter" type="button">Click Me!</button>
table.order.listener()
会导致列索引 0 在每次单击按钮时排序 asc/desc。
(如果您还想去掉排序箭头,请参阅 here。)
我想防止通过单击列名更改顺序。
我试过了:
"ordering": false,
这实际上删除了点击 possibility.But 然后排序不再有效。我想保留它,只阻止用户点击列名。我尝试了一切,例如:
$(".sorting").addClass('sorting_disabled').removeClass('sorting');
或
$(".sorting").click(function(){return false;});
或
$( ".sorting" ).click(function( event ) {
event.preventDefault();
});
没有任何效果。
您可以使用以下内容:
$(document).ready(function() {
var table = $('#example').DataTable( {
"initComplete": function(settings, json) {
$('th.sorting').off();
$("th.sorting").css('cursor', 'default');
$("th.sorting_asc").css('cursor', 'default');
$("th.sorting_desc").css('cursor', 'default');
}
} );
// to show sorting is still possible:
table.order.listener( '#mysorter', 0 );
} );
这会从 table 的列 headers 中删除排序事件(jQuery off()
函数),并确保鼠标图标不会变为滚动标题时手。
它将箭头留在原处,因此您可以看到哪种排序有效。
为了显示仍然可以排序,我在页面中添加了一个按钮:
<button id="mysorter" type="button">Click Me!</button>
table.order.listener()
会导致列索引 0 在每次单击按钮时排序 asc/desc。
(如果您还想去掉排序箭头,请参阅 here。)