使用不同函数时,DataTables中出现奇怪的类名称问题

时间:2015-03-06 00:47:41

标签: javascript jquery datatables jquery-datatables

DataTables我遇到了一个奇怪的问题。在文档中,它有时会显示带有大写D的类名:

var table = $('#example').DataTable();

其他时间使用小写D:

var table = $('#example').dataTable();

两者都工作..大部分时间。我的问题是两个功能是冲突的。一个人需要这个类是小写的,一个需要大写。

例如,search function需要大写(有效):

https://jsfiddle.net/362cz1z7/

如果我使用小写(休息):

https://jsfiddle.net/362cz1z7/1/

我也想在同一个表上使用fnSettings函数......当然它需要小写,所以它会破坏我的搜索代码。

大写(休息):

https://jsfiddle.net/362cz1z7/2/

小写(有效):

https://jsfiddle.net/362cz1z7/3/

两者都给出了错误' Uncaught TypeError:undefined不是函数'。我完全糊涂了。如果你看一下文档中的例子,有些是大写的,有些是小写的。

1 个答案:

答案 0 :(得分:1)

源代码中的注释比我更好地描述了这种情况(从第14,670行开始):

// With a capital `D` we return a DataTables API instance rather than a
// jQuery object
$.fn.DataTable = function ( opts ) {
    return $(this).dataTable( opts ).api();
};

// All properties that are available to $.fn.dataTable should also be
// available on $.fn.DataTable
$.each( DataTable, function ( prop, val ) {
    $.fn.DataTable[ prop ] = val;
} );

所以我想如果您尝试直接访问API,则使用大写D,如果您正在操作页面上的对象,则使用小写d。凌乱!