2016-08-04 43 views
1

我正在使用DataTables版本1.10.10。我知道我可以添加一个函数到fnDrawCallback中,当我在特定的表上启动数据表时,但是我有很多带有表格调用的页面,并且需要更新它们中的每一个。DataTables 1.10.10 - 添加函数每次调用

我想知道在DataTables代码中,我可以在初始化阶段添加任何附加函数之前,在DrawCallback函数中放置一个新函数。

任何人都可以指出我的位置吗?

+0

你是说你想从根本上改变'fnDrawCallback'(为了让它调用你的新函数,除了它的正常行为),以便每一次*使用你网站上的DataTables初始化使用改变后的版本? –

+0

@ChrisH。 - 是的,这正是我想要做的。 – Phil

+0

@ChrisH。实际上,如果我可以将几行代码添加到dataTable初始化的位置,那么效果会更好,因此我可以检查DOM是否有特定ID的输入 – Phil

回答

1

我在这里看到两个选项。选项A更容易实现,但需要您在每个DataTables初始化中调用您的函数。选项B需要的代码少得多(并且可能更接近您真正想要做的),但是这可能会非常困难并可能产生意想不到的后果。

选项A

您可以创建您在所有网页(如您如何想必已经包含了数据表.js文件),包括定义您的自定义功能的.js脚本文件。然后,您只需将该函数调用放在每个fnDrawCallback选项的顶部即可。正如你所提到的:

我有很多页面调用表,并需要更新每个人和他们每一个。

这并没有真正缓解这一问题(和未来期间很可能你已经考虑过这个,很抱歉,如果它不是有用),但同时它可能涉及多一点繁重的工作在前面,你避免一些挑战以及选项B的风险。这意味着您不必在每个页面中重新定义自定义函数,但仍需要调用它。如果你真的不想这样做,看看选B.

选项B

你可以进入实际jquery.dataTables.js文件,并尝试重写fnDrawCallback功能的默认行为打电话给你的函数。这个选项的优点是你不必多次弄乱你的自定义函数。缺点是,如果您不想使用自定义版本,则必须在初始化中手动覆盖它。公平的警告,我从来没有真的尝试过这个,所以除了指出你在正确的方向,我无法提供太多的帮助。

我有版本1.10.12的DT,但没有太多改变,所以希望这个信息是相关的。在我的jquery.DataTables.js版本中,fnDrawCallback函数在10614行(当然,您可以在文件上查找以获得您的版本的确切行)。您可以重新定义fnDrawCallback的默认行为。 (您可以通过同一部分中定义的其他函数或每个函数的注释来获得一些示例。

注意

当然,你可以的,覆盖从这个脚本文件的DataTable几乎一切,但这不会是很好的支持或证据充分的,所以如果你选择选项B(这看起来更符合你想做的事情)轻轻一点。

+0

优秀答案谢谢! – Phil

相关问题