选择列时,数据表colVis插件显示错误“headerCells [i]未定义”

时间:2015-05-14 12:47:43

标签: jquery jquery-plugins datatables jquery-datatables

我从早上起就试图解决这个bug而没有效果

我的数据表是

  keywordDataTable = $('#keywordsTable').DataTable( {
    //stateSave: true,
    paging:   false,
    scrollY: "100%",
    scrollX: true,
    scrollCollapse: true,
    dom: 'C<"clear">lfrtip',
    colVis: {
        exclude: [ 0 ],
        showAll: 'All',
        showNone: 'None',
    }
} );
new $.fn.dataTable.FixedColumns( keywordDataTable );

一切运行正常但是当我取消选中一列并尝试从All按钮中选择或再次选择列检查时,我在控制台中收到此错误TypeError: headerCells[i] is undefined on line number 4156 jquery.dataTable.js。 在调试时,我发现以某种方式列数不会更新并且最后一个索引例如如果我在添加(或检查)另一列之前有5列。函数触发显示只计数5但它应该返回6.因此,列宽也没有正确设置。

来自jquery.dataTables.js的

headerCells = _fnGetUniqueThs( oSettings, tmpTable.find('thead')[0] );

        for ( i=0 ; i<visibleColumns.length ; i++ ) {
            column = columns[ visibleColumns[i] ];

        /*  (error on this line) */ headerCells[i].style.width = column.sWidthOrig !== null && column.sWidthOrig !== '' ?
                _fnStringToCss( column.sWidthOrig ) :
                '';
        }

2 个答案:

答案 0 :(得分:0)

发现错误

不要使用数据包捆绑包

尝试使用cdn,我认为cdn有一个错误解决了同样的事情

<script src="//cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>

答案 1 :(得分:0)

如果您使用JSON绑定网格,请检查列定义中的列数不超过JSON中的字段数