jQuery UI " $("#datepicker").datepicker 不是一个函数"

IT技术 asp.net javascript jquery datepicker
2021-01-28 23:26:26

当我在现有的 .aspx 页面中使用 jQuery 的 UI 插件 DatePicker 时,我收到以下错误:

$("#datepicker").datepicker is not a function

但是,当我将创建和使用 datePicker 的相同代码复制并粘贴到与 aspx 页面位于同一目录中的 HTML 文件时,它可以完美运行。这让我假设 aspx 页面中有一些 JS 文件阻止了 datePicker 或 jQuery 的 UI JS 文件正确加载。

任何人都可以确认我的信念或提供任何提示来找到干扰 jQuery 的 UI 插件的罪魁祸首吗?

6个回答

我在类似的问题上挣扎了几个小时。后来发现 jQuery 被包含了两次,一次是我添加 jQuery 函数的程序,一次是我们的内部调试器。

那么有什么解决办法呢?
2021-03-14 23:26:26
这也是我的问题。我正在使用 superfish,它也在加载 jquery。直到现在我才注意到。
2021-03-15 23:26:26
这也是我的问题。我在 rails 资产管道中使用公共资产,并且在我的顶级元文件 (application.js) 中声明了 jquery,并且在我的 JS 文件夹中有一个 jquery min 文件。双重申报。我刚刚删除了 jquery 声明。
2021-03-19 23:26:26
@HenriqueOrdine 仔细检查页面上是否未包含两次 jQuery。
2021-03-31 23:26:26
这也是我的问题。我参考了我自己的 jQuery 库以及 jQuery Tools CDN,它在不知不觉中包含了 jQuery。
2021-04-06 23:26:26

如果有另一个库正在使用 $ 变量,您可以这样做:

var $j = jQuery.noConflict();
$j("#datepicker").datepicker();

还要确保您的 javascript 包含的顺序正确,以便在 jquery.ui 之前定义 jquery 核心库。我遇到过这个问题。

还要确保您的 javascript 包含的顺序正确,以便在 jquery.ui 之前定义 jquery 核心库。我遇到过这个问题<<这对我来说是正确的答案。
2021-04-04 23:26:26
这也是我的问题。我改变了顺序并且它起作用了
2021-04-04 23:26:26

jQuery“$(”#datepicker“).datepicker 不是一个函数”

我通过将以下三个文件放在表单的正文部分最后解决了这个问题。

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js" type="text/javascript"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="Stylesheet" type="text/css" />
你是一个救生员,不知何故,在所有的答案中,经过 2 天不间断的斗争,正是这个人救了我。
2021-03-23 23:26:26

当您缺少 jQuery UI 集中的文件时,通常会出现此错误。

仔细检查您是否拥有所有文件、jQuery UI 文件以及 CSS 和图像,以及它们是否位于服务器上正确链接的文件/目录位置。

这个答案最接近我发布的解决方案。
2021-03-31 23:26:26
自我注意:确保在从本地文件切换到 google 的 CDN 文件时,您确实拥有正确的 url。它是 ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js,而不是 ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery-ui.min.js,该死的。
2021-04-06 23:26:26

如果您认为存在冲突,您可以jQuery.noConflict()在代码中使用详细信息在文档中

引用魔法 - JQUERY 的快捷方式

如果你不喜欢一直输入完整的“jQuery”,还有一些替代的快捷方式:

将 jQuery 重新分配给另一个快捷方式 var $j = jQuery;(如果您希望使用不同的库,这可能是最好的方法)使用以下技术,它允许您在代码块内使用 $ 而不会永久覆盖 $:

(function($) { /* some code that uses $ */ })(jQuery)

注意:如果您使用这种技术,您将无法在这个封装函数中使用 Prototype 方法,这些方法期望 $ 是 Prototype 的 $,因此您选择在该块中仅使用 jQuery。使用 DOM 就绪事件的参数:

jQuery(function($) { /*some code that uses $ */ });

注意:同样,在那个块中你不能使用 Prototype 方法

那是文档的末尾,可能对您有用