此插件的绝大多数文档都表明您使用它进行初始化
$('#example').dataTable();
Run Code Online (Sandbox Code Playgroud)
但是http://www.datatables.net/examples/api/multi_filter_select.html初始化使用
$('#example').DataTable();
Run Code Online (Sandbox Code Playgroud)
结果对象差别很大,当我用小写的"D"初始化时,上面的示例URL不起作用,但是其他几乎所有其他都需要小写的"D"初始化.
有人可以向我解释为什么会有差异,以及如何让两人在一起玩得很好?本质上我需要多过滤器选择功能,但也需要处理其他一些看起来不喜欢大写"D"初始化的调用/插件.
dav*_*rad 82
基本上,两个构造函数返回不同的对象.
var table = $(<selector>).dataTable()
Run Code Online (Sandbox Code Playgroud)
dataTable
是oldschool dataTables constructur,它返回一个jQuery对象.这个jQuery对象富含匈牙利表示法格式的一组API方法,例如fnFilter
,fnDeleteRow
等等.请在此处查看完整的API方法列表.例子 :
table.fnDeleteRow(0);
table.fnAddData(['E', 'F']);
Run Code Online (Sandbox Code Playgroud)
dataTable
所有1.9.x/1.10.x版本都支持.
var table = $(<selector>).DataTable()
Run Code Online (Sandbox Code Playgroud)
DataTable构造函数是在1.10.x中引入的,它返回一个巨大的API对象,具有对页面,行,单元格等的完全读/写访问权限,请参见手册.示例等价:
table.row(0).remove();
table.row.add(['E', 'F']).draw();
Run Code Online (Sandbox Code Playgroud)
如果您维护旧代码,或者由于某种原因需要使用oldschool dataTable构造函数,但仍需要使用新API,则使用返回新API 的方法扩展jQuery对象(从1.10.0开始).api()
.示例等价:
var table = $('#example').dataTable();
table.api().row(0).remove();
table.api().row.add(['E', 'F']).draw();
Run Code Online (Sandbox Code Playgroud)
旧的API table.fnDeleteRow(0)
仍然有效.所以关注你:
本质上我需要多过滤器选择功能,但也需要处理其他一些看起来不喜欢大写"D"初始化的调用/插件.
如你所见,你可以做到这两点!以旧方式初始化dataTables,并.api()
在需要访问新API时使用.
好吧,你不需要使用DataTable
构造函数.如果您不使用新API,则没有理由使用DataTable
构造函数.oldschool dataTable
构造函数不会被弃用.DataTables主要是一个人的工作.维护和开发并且显然非常耗费时间来维护一个包含论坛,手册,大量示例等的庞大网站是一项艰巨的任务.这只是一个猜测,但我认为Allan Jardine现在只是已经改变dataTable
到DataTable
实际需要的地方,只是因为他不能一步到位.
归档时间: |
|
查看次数: |
19948 次 |
最近记录: |