jquery datatables:columnFilter()不是函数错误

时间:2014-10-07 06:30:26

标签: jquery-datatables datatables-1.10

我正在使用自定义服务器端过滤,搜索和排序的数据表...为什么columnFilter()返回错误" TypeError:$(...)。DataTable(...)。columnFilter不是一个功能"

这是我如何使用columnFilter:

var table = $('#item-table').DataTable({
    ajax: '<?= site_url("price_update"); ?>',
    serverSide: true,
    processing: true,
    paging: true
}).columnFilter();

我的代码没有&#34; .columnFilter()&#34;工作正常。

1 个答案:

答案 0 :(得分:10)

使用dataTable()时,必须使用“oldschool”columnFilter构造函数。概念证明:

不起作用,会产生与问题相同的错误:
使用DataTable()实例化1.10.x的columnFilter - &gt;的 http://jsfiddle.net/87kam74q/

有效
使用dataTable()实例化1.10.x的columnFilter - &gt;的 http://jsfiddle.net/LvL4vm8e /

原因是,columnFilter假设它正在处理“旧的”jQuery对象,而不是新的API对象。但是,您仍然可以通过.api()方法访问新API,例如:

var table = $('#example').dataTable();
table.api().search('test').draw();

如果你不想通过table.api()使用新的AP,并坚持使用DataTable(),你可以通过放弃链接来实现同样的目标:

var table = $('#example').DataTable();
$('#example').dataTable().columnFilter({
    sPlaceHolder : 'head:before',
    aoColumns: [ { type: "text"},
                 { type: "text"},
                 { type: "text"},
                 { type: "text"},
                 { type: "text"}
               ] 
});

小提琴 - &gt;的 http://jsfiddle.net/qbr01oya/ 即可。这不会导致dataTable被初始化两次(dataTables检查它)。