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

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

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

然而,当我复制和粘贴相同的代码,创build和使用datePicker到一个HTML文件,也是在aspx页面在同一目录中,它的工作完美无瑕。 这导致我假定在aspx页面中有一些JS文件阻止了datePicker或jQuery的UI JS文件加载正确。

任何人都可以确认我的信仰或提供任何提示,find干扰jQuery的UI插件的罪魁祸首?

我在几个小时内也遇到过类似的问题。 然后,事实certificate,jQuery包含了两次,一次是由我的内部debugging器添加一个jQuery函数的程序。

如果有另一个使用$variables的库,可以这样做:

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

还要确保你的javascript包括正确的顺序,所以jquery核心库是在jquery.ui之前定义的。 我有这个问题。

这个错误通常出现在你从jQuery UI集中缺less一个文件的时候。

仔细检查,你有所有的文件,jQuery的UI文件以及CSS和图像,并且他们在你的服务器正确链接的文件/目录位置。

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

参考魔术 – 捷径

如果您不喜欢随时键入完整的“jQuery”,还有一些替代捷径:

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

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

注意:如果你使用这个技巧,你将不能在这个包含函数的Prototype方法中使用Prototype的$,所以你可以select只使用jQuery。 使用DOM ready事件的参数:

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

注意:再次,在该块内,您不能使用Prototype方法

这从文档的结尾,可能对你有用

首先明白一点:你是否很好地引用了jquery-ui.js文件?

尝试使用萤火虫的networking标签来查找它是否被加载,或者Web Developer Toolbar的Information \ View javascript代码。

您是否尝试过使用Firebug来1)确定没有Javascript错误和2)页面上存在#datepicker元素?

在datepicker调用之前,很可能会有一个错误阻止datepicker调用的执行。

我知道这个post是相当古老的,但作为参考,我通过更新datepicker的版本解决了这个问题

值得一试,以避免数小时的debugging。

https://cdnjs.com/libraries/bootstrap-datepicker

我刚刚遇到了这个问题,并且在</body>标记为我解决了这个问题之前,将JS引用和代码移到了页面底部。

同时检查下载文件的目录的权限。 出于某种原因,当我下载这个,默认情况下,它被保存在一个没有允许访问的文件夹! 花了很长时间才发现问题出在这里,但是我只是需要改变目录的权限和内容 – 把它设置为每个人都是只读的。 现在很好用。

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" /> 

我最近遇到了这个问题 – 问题是我已经包含在头标记的jQuery UI文件,但我正在使用的Telerik库包括在身体标记底部的jQuery(因此显然重新初始化jQuery和卸载UI以前加载的插件)。

解决scheme是找出jQuery实际上被包含在哪里,然后包括jQuery UI脚本。

我刚碰到类似的问题。 当我将脚本引用从自闭标记(即<script src=".." /> )更改为空节点(即<script src=".."></script> )时,我的错误消失了,我可以突然引用jQuery的UIfunction。

当时,我没有意识到,这只不过是我的一个脑袋而已,没有正确地把它关起来。 (我只是简单介绍一下其他人碰到类似问题的机会。)

在打电话之前,有些文件没有加载。

例如:你的代码:

 <%= javascript_include_tag "distpicker.min" %> <%= javascript_include_tag "distpicker.data.min" %> 

更改为:

 <%= javascript_include_tag "distpicker.data.min" %> <%= javascript_include_tag "distpicker.min" %> 

我可以解决这个问题,去掉_Layout.cshtml上的jquery包

  <script src="~/Scripts/jquery-1.10.2.js"></script> <script src="~/Scripts/kendo/2015.2.902/kendo.all.min.js"></script> ... 

页脚

  @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false) 

改变页脚

  @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)