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。
我刚刚遇到了这个问题,并且在</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)