【问题标题】:Unable to initialise dataTables table: 'undefined is not a function'无法初始化 dataTables 表:“未定义不是函数”
【发布时间】:2014-09-25 04:27:11
【问题描述】:

我试图在我的应用程序中使用示例 dataTables 表,但在使用标准的“zero configuration”初始化程序时遇到了异常。

  • 异常是“Uncaught TypeError: undefined is not a function”
  • JQuery 和 dataTables 在执行时都是存在的脚本。
  • 我的 HTML 与上面提到的零配置页面上的示例 html 相同,只是我将 ID 更改为“网格”(如果有好处,可以提供完整的 HTML)。

这是我在 Chrome 开发者工具中的 js 截图:

注意:Grid.js 正在显示,Site.js 仅控制对 _Layout 页面的更改以格式化导航栏。

编辑:要加载 jquery 和 dataTables js 文件,我正在使用捆绑包(MVC BundleConfig.cs)。我将 jquery 文件加载到呈现 cshtml 网格的 _Layout 文件的标题中。在 Grid.cshtml 的顶部,我正在加载 dataTables.js 文件。以下是捆绑包的指定方式:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/Grid").Include(
                        "~/Scripts/jquery.dataTables.js",
                        "~/Scripts/Grid.js"));

【问题讨论】:

  • 将你的数据表函数从文档准备函数中取出,并将其放在简单的脚本标签中
  • 我已经尝试过这个,但行为没有改变。我也尝试从控制台执行上述脚本。不建议将我的数据表初始化放在文档就绪函数中吗?我会认为这很重要?
  • 通过 chrome 或 nywhere 中的检查器工具调试文件加载和文件依赖性,然后告诉 ok!
  • 我不确定我是否理解您的问题。我能够在两个必需的 javascript 文件中打断点:jquery 和 dataTables。我认为这意味着两个文件都已加载并可以使用。根据 dataTables,这些是仅有的两个依赖项。
  • 这些是捆绑包,当它加载到您的 html 文档中时,查看缩小的 /grid?v= .js 文件的源代码并查看脚本是否实际加载。

标签: jquery datatables


【解决方案1】:

这个异常被抛出,因为 JQuery 脚本被添加到页面两次(在顶部和底部),这导致 dataTables 未定义。如果您遇到这种情况,请检查多个 jquery 实例的 Source 并确保只有一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2015-05-30
    • 1970-01-01
    • 2015-01-12
    • 2015-03-18
    • 2015-10-04
    • 2011-05-31
    相关资源
    最近更新 更多