我使用jQuery的datatables来显示我的记录的网格视图。
我把列的showhide api引用自 此处.
按照定义,我试图在我的项目中使用它和所有的CSS & JS文件。
当我运行它时,它显示我的错误。
TypeError: table.column is not a function
我的jquery是这样的。
$(document).ready(function() {
var table = $('.dataTables-example').dataTable({"scrollX": true});
$('a.toggle-vis').on( 'click', function (e) {
e.preventDefault();
var column = table.column($(this).attr('data-column') );
column.visible( ! column.visible() );
} );
});
是否有什么我缺少什么?
在这一行中,你调用的是1.9或以前的datatables。
var table = $('.dataTables-example').dataTable({"scrollX": true});
把这个改成:
var table = $('.dataTables-example').DataTable({"scrollX": true});
注意大写的 D
在 DataTable
. 你需要这样才能调用数据集1.10+,并使用它的功能,如 column(DT)
这在以前的版本中是不存在的。
你或许也需要为datatable v1.10.0以上的版本修改这个。
var column = table.api().column( $(this).attr('data-column') );
那些在datatable版本中遇到类似问题的人。1.9.* 可以做
// column
var ColNum = $(this).attr('data-column');
// Define
var bVis = table.fnSettings().aoColumns[ColNum].bVisible;
// Toggle
table.fnSetColumnVis(ColNum, bVis ? false : true);
而不是
var column = table.column($(this).attr('data-column') );
column.visible( ! column.visible() );