gpt4 book ai didi

datatables - dataTable() 与 DataTable() - 为什么有区别以及如何让它们一起工作?

转载 作者:行者123 更新时间:2023-12-03 05:56:45 27 4
gpt4 key购买 nike

该插件的绝大多数文档表明您可以使用

对其进行初始化
$('#example').dataTable();

但是http://www.datatables.net/examples/api/multi_filter_select.html使用

初始化
$('#example').DataTable();

生成的对象差异很大,当我使用小写“D”初始化时,上面的示例 URL 不起作用,但是几乎所有其他内容都需要小写“D” D'初始化。

有人可以向我解释一下为什么有区别,以及如何让两者很好地协同工作吗?本质上,我需要多重过滤器选择功能,但还需要添加一些其他调用/插件,它们似乎不喜欢大写的“D”初始化。

最佳答案

基本上,两个构造函数返回不同的对象。

<小时/>

数据表构造函数

var table = $(<selector>).dataTable()

dataTable 是老式的 dataTables 构造函数,它返回一个 jQuery 对象。这个 jQuery 对象丰富了一组匈牙利表示法格式的 API 方法,例如 fnFilterfnDeleteRow 等。查看 API 方法的完整列表 here 。示例:

table.fnDeleteRow(0); 
table.fnAddData(['E', 'F']);

dataTable 受所有 1.9.x/1.10.x 版本支持。

<小时/>

数据表构造函数

var table = $(<selector>).DataTable()

DataTable 构造函数是在 1.10.x 中引入的,它返回一个巨大的 API 对象,具有对页面、行、单元格等的完全读/写访问权限,请参阅 manual 。等价示例:

table.row(0).remove();
table.row.add(['E', 'F']).draw();
<小时/>

结合dataTable和DataTable

如果您维护旧代码,或者由于某种原因需要使用旧式 dataTable 构造函数,但仍然需要使用新 API,则 jQuery 对象将通过以下方式扩展(从 1.10.0 开始):返回新 API 的 .api() 方法。等价示例:

var table = $('#example').dataTable();
table.api().row(0).remove();
table.api().row.add(['E', 'F']).draw();

table.fnDeleteRow(0) 这样的旧 API 仍然有效。所以您关心的是:

Essentially I need the multi-filter-select functionality, but also need to tack on some other calls / plugins, which don't seem to like the upper-case 'D' initialization.

如您所见,您可以两者兼得!以旧方式初始化 dataTables,并在需要访问新 API 时使用 .api()

<小时/>

为什么这么多官方例子都使用dataTable()?

好吧,您不需要使用DataTable构造函数。如果您不使用新的 API,则没有理由使用 DataTable 构造函数。老派的 dataTable 构造函数并未被弃用。数据表主要是一个人的工作。维护和开发是一项艰巨的任务,而且维护一个包含论坛、手册、大量示例等的庞大网站显然非常耗时。这只是一种猜测,但我假设 Allan Jardine 现在只是在实际需要的地方将 dataTable 更改为 DataTable,因为他无法一步完成所有操作。

关于datatables - dataTable() 与 DataTable() - 为什么有区别以及如何让它们一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25207147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com