Jquery DataTables 1.10.10-添加每次调用的函数

Jquery DataTables 1.10.10-添加每次调用的函数,jquery,datatables,Jquery,Datatables,我使用的是DataTables版本1.10.10。我知道当我在一个特定的表上初始化datatables时,我可以在fnDrawCallback中添加一个函数,但是我有很多带有表调用的页面,需要更新每个页面 我想知道在DataTables代码中,我可以在初始化阶段添加的任何附加函数之前,在DrawCallback函数上自动运行一个新函数 有人能给我指出正确的位置吗?我在这里看到两种选择。选项A更容易实现,但需要在每次DataTables初始化时调用函数。选项B需要更少的代码(可能更接近您真正想要做

我使用的是DataTables版本1.10.10。我知道当我在一个特定的表上初始化datatables时,我可以在fnDrawCallback中添加一个函数,但是我有很多带有表调用的页面,需要更新每个页面

我想知道在DataTables代码中,我可以在初始化阶段添加的任何附加函数之前,在DrawCallback函数上自动运行一个新函数


有人能给我指出正确的位置吗?

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

选项A

您可以创建一个包含在所有页面中的
.js
脚本文件(比如您可能已经包含了DataTables
.js
文件),用于定义自定义函数。然后,您所要做的就是将该函数调用放在每个
fnDrawCallback
选项的顶部。正如你提到的:

我有很多带有表调用的页面,需要更新每个页面

这并不能真正缓解这个问题(很可能你已经考虑过了,如果没有帮助的话,很抱歉),但是虽然这可能需要更多的前期工作,但是你避免了选项B的一些挑战和风险。这意味着你不必在每个页面中重新定义你的自定义函数,但你还是得打电话给它。如果你真的不想这样做,看看选项B

选项B

您可以进入实际的
jquery.dataTables.js
文件,尝试覆盖
fnDrawCallback
函数的默认行为来调用您的函数。此选项的优点是,您不必多次使用自定义函数。缺点是,如果您不想使用自定义版本,则必须在初始化时手动覆盖它

公平的警告,我从来没有真正尝试过这个,所以除了给你指出正确的方向之外,我不能提供太多的帮助

我有DT的1.10.12版,但没有太大的变化,所以希望这些信息是相关的。在我的
jquery.DataTables.js
版本中,
fnDrawCallback
函数位于第10614行(当然,您可以在文件上查找,以获得您的版本的确切行)。在这里,您可以重新定义
fnDrawCallback
的默认行为。(您可以从同一节中定义的其他函数或每个函数的注释中获得一些如何执行此操作的示例)

注意


当然,您可以从这个脚本文件覆盖DataTables中的几乎所有内容,但这并没有得到很好的支持或文档化,因此如果您选择选项B(它似乎更符合您想要做的事情),就可以轻描淡写了

你是说你想从根本上改变
fnDrawCallback
(除了正常行为之外,还要让它调用你的新函数),这样你的站点上每次使用DataTables初始化都会使用修改过的版本吗?@ChrisH.-是的,这正是我想做的。@ChrisH。实际上,如果我可以在dataTable初始化的地方添加几行代码,这样我就可以在DOM中检查具有特定id的输入,那就更好了