将jquery.datatables插件与ColVis插件一起使用,我在删除列时收到此错误:
“无法读取未定义的属性's width'”。我无法在线找到此错误的解决方案。
我不确定导致错误的是什么,虽然我确实有一个我想发布的修复程序,以便其他人遇到此问题。
我正在使用来自http://datatables.net/的jquery.datatables 1.9.4。
答案 0 :(得分:19)
中的列数时出现此错误
<thead></thead>
与
中的列数不同$('#ls-table').DataTable($.extend({}, window.coonDataTableOptions, {
columns: [
<here>
]
}));
答案 1 :(得分:4)
在DataTables源代码的第3255行是这行代码:
nThs[i].style.width = o.aoColumns[iVis].sWidth;
在这种情况下,o.aoColumns [iVis]为null,因为索引所代表的列刚被隐藏。看起来我遇到了插件的创建者并不期待的角落情况。上面的代码被调用以响应内部datatables事件,该事件由隐藏列时由ColVis调用的方法触发。解决这个问题需要做的就是将上面的代码更改为:
var column = o.aoColumns[iVis];
if(column != null) {
nThs[i].style.width = o.aoColumns[iVis].sWidth;
}
不幸的是,这需要编辑核心插件代码,但我会提交错误报告并希望他们尽快解决。与此同时,希望这有助于人们寻找解决方法。
答案 2 :(得分:1)
仅由于填充其中的列而发生此类错误
... DataTable(... “列”:... )
与定义的HTML页面不匹配。具有列数。
.. ..
答案 3 :(得分:0)
在$("thead").empty();
之后使用mainTable.clear().destroy().draw();
数据表上的问题;一旦从jQuery的数据加载到HTML5“ thead”的数据表jQuery的。 mainTable.clear().destroy().draw();
无法删除thead上的数据,因此解决方案是使用jquery .empty()
删除它。
不客气:)
答案 4 :(得分:-2)
搜索a.aoColumns[D].sWidth
,替换
var column = a.aoColumns[D];if(column != null) {c.style.width=a.aoColumns[D].sWidth}