所以我使用jquery数据表和colReorder
来设置表。此表具有一些功能,例如如何单击列标题,以及选择要切换的列。为了使此功能正常工作,我必须启用colReorder
。现在唯一的问题是,我的所有列都是可拖动的。我该如何解决这个问题?
这是我尝试过的事情
draggable
设为false bsort
设为false bsortable
设为false 请让我知道我做错了什么。另外,这是我的构造函数:
window.table =
$table.DataTable({
data: window.apiData['data'],
/**
dat
* Specify which columns we're going to show
*/
columns: window.columnMapping,
/**
* we want to disable showing page numbers, but still limit the number of results
*/
dom: "t",
/**
* let's disable some dynamic custom css
*/
asStripClasses: [],
/**
* let's keep the pages reasonable to prevent scrolling
*/
pageLength: 8,
/**
* this helps with hotswapping columns
*/
colReorder: true
});
谢谢!
答案 0 :(得分:2)
您可以将ColReorders事件绑定覆盖到<th>
元素。幸运的是,事件充满了命名空间,因此很容易被追踪,事实证明ColReorder.mousedown
负责触发列拖动。因此,您可以通过
function resetColReorderMD() {
$('.dataTable thead th').each(function() {
var md = $._data($(this)[0]).events.mousedown;
for (var i=0, l=md.length; i<l; i++) {
if (md[i].namespace == 'ColReorder') {
md[i].handler = function() {}
}
}
})
}
$('#example').DataTable({
colReorder: true,
initComplete: function() {
resetColReorderMD()
}
})
演示 - &gt;的 http://jsfiddle.net/2y4w3v6g/ 强>
使用ColReorder插件时禁用列重新排序似乎没有意义。我猜所提到的“功能”正在大量使用ColReorder功能,这是真正的问题,上面应该被视为不可取的黑客。