我正在使用DataTables 1.10.10。我想在单击(打开)复选框时禁用所有列的排序,反之亦然。这是在初始化之后完成的。
答案 0 :(得分:0)
简短的回答是:你做不到!完全更改排序功能的唯一方法是设置ordering: false
并重新初始化表。
然而,通过一些jQuery魔术,您可以遍历每个<th>
,存储事件unbind()
,然后在需要再次排序时将存储的事件重新附加到<th>
。这不是一项微不足道的任务。每列绑定了三个事件:click
,keypress
和selectStart.dt
。此外,每个事件都必须进行深度克隆,因为它们在unbind()
时被销毁。
以下是单击复选框时执行此操作的示例:
var storedEvents;
$('#sort').change(function() {
if (!$(this).is(':checked') && storedEvents) {
$('#example thead th').each(function(index, th) {
for (var event in storedEvents[index]) {
$(th).bind(event, storedEvents[index][event][0])
}
})
} else {
storedEvents = [];
$('#example thead th').each(function() {
storedEvents.push( $.extend( true, {}, $._data( this, "events" ) ));
$(this).unbind();
})
}
})
演示 - &gt;的 http://jsfiddle.net/s7uzzkcg/ 强>