Asp.net jqueryui"$(“日期选择器”)。日期选择器不是函数;
当我在现有的.aspx页面中使用jQuery的UI插件DatePicker时,会出现以下错误:Asp.net jqueryui"$(“日期选择器”)。日期选择器不是函数;,asp.net,javascript,jquery,datepicker,Asp.net,Javascript,Jquery,Datepicker,当我在现有的.aspx页面中使用jQuery的UI插件DatePicker时,会出现以下错误: $("#datepicker").datepicker is not a function 然而,当我将创建和使用datePicker的相同代码复制并粘贴到与aspx页面位于同一目录中的HTML文件时,它的工作是完美的。这导致我假设在aspx页面中有一些JS文件阻止了datePicker或jQuery的UI JS文件的正确加载 有谁能证实我的观点或提供一些关于找到干扰jQuery UI插件的罪魁祸首
$("#datepicker").datepicker is not a function
然而,当我将创建和使用datePicker的相同代码复制并粘贴到与aspx页面位于同一目录中的HTML文件时,它的工作是完美的。这导致我假设在aspx页面中有一些JS文件阻止了datePicker或jQuery的UI JS文件的正确加载
有谁能证实我的观点或提供一些关于找到干扰jQuery UI插件的罪魁祸首的提示吗 如果有另一个库正在使用$variable,则可以执行以下操作:
var $j = jQuery.noConflict();
$j("#datepicker").datepicker();
还要确保javascript包含的顺序正确,以便在jquery.ui之前定义jquery核心库。我遇到过导致问题的问题。如果您认为存在冲突,可以在代码中使用
jQuery.noConflict()
。详情载于
参考魔术-快捷方式
JQUERY
如果你不喜欢输入完整的
“jQuery”一直以来,都有一些
其他快捷方式:
将jQuery重新指派给另一个快捷方式
var$j=jQuery代码>(这可能是
如果您希望使用
不同的库)使用以下
技术,它允许您使用$
在代码块内部没有
永久覆盖$:
注意:如果您使用此
技术,您将无法使用
这个封装中的原型方法
希望$
原型是美元,所以你要做一个
选择仅在其中使用jQuery
块将参数用于DOM
就绪事件:
注:
再说一次,在那块你不能用的地方
原型方法
这是文档末尾的内容,可能对您很有用。您是否尝试使用Firebug 1)确定没有Javascript错误,2)页面上是否存在#datepicker元素
最有可能的是,在datepicker调用之前发生了一个错误,该错误阻止了datepicker调用的执行。当您在jQuery UI集中缺少一个文件时,通常会出现此错误
仔细检查您是否拥有所有文件、jQuery UI文件以及CSS和图像,以及它们是否位于服务器上正确链接的文件/目录位置。首先看一个明显的问题:您是否引用了jQuery-UI.js文件
尝试使用firebug的“网络”选项卡查看它是否已加载,或者Web Developer工具栏的Information\View javascript代码。我刚刚遇到了这个问题,并将JS引用和代码移到页面底部,然后使用
标记将其修复。还要检查下载文件的目录的权限。由于某种原因,当我下载这个时,默认情况下它保存在一个不允许访问的文件夹中!我花了很长时间才发现问题所在,但我只需要更改目录及其内容的权限-将其设置为EVERYONE=READ ONLY。现在效果很好。我为类似的问题挣扎了好几个小时。后来证明jQuery包含了两次,一次是由我添加jQuery函数的程序包含,一次是由我们的内部调试器包含。我最近遇到了这个问题-问题是我在head标记中包含了jQuery UI文件,但我在body标记的底部使用了包含jQuery的Telerik库(因此,显然重新初始化jQuery并卸载先前加载的UI插件)
解决方案是找出jQuery实际包含的位置,然后再包含jQuery UI脚本。我遇到了类似的问题。当我将脚本引用从自动关闭标记(即,
)更改为空节点(即,
)时我的错误消失了,我可以突然引用jQueryUI函数
当时,我没有意识到这只是我没有正确关闭它的一个大脑屁。(我发布这篇文章只是因为有可能其他人遇到了类似的问题。)一些文件在调用之前没有加载
例如:
您的代码:
<%= javascript_include_tag "distpicker.min" %>
<%= javascript_include_tag "distpicker.data.min" %>
更改为:
<%= javascript_include_tag "distpicker.data.min" %>
<%= javascript_include_tag "distpicker.min" %>
我知道这篇文章已经很老了,但为了便于参考,我通过更新datepicker的版本解决了这个问题
同样值得一试,以避免数小时的调试
jQuery“$(“#日期选择器”)。日期选择器不是函数“
我已通过将以下三个文件放在表单末尾的正文部分解决了这个问题
<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" />
我可以通过删除_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/bootstrap")
@RenderSection("scripts", required: false)
你试过使用吗
$(“#”)日期选择器();
而不是
$(“#txtDateElementId”).datepicker();
使用JQuery按ID选择元素时。在我的例子中,通过更改以下脚本的导入顺序解决了此问题:
之前(不工作):
工作后:旧问题-更新版本的.NET(4.5.6)-相同问题-新答案
使用NuGet
确保通过NuGet安装了以下组件:
- jQuery
- AspNet.ScriptManager.jQuery
- jQuery.UI.Combined
- AspNet.ScriptManager.jQuery.UI.com
从此处安装它们[工具>NuGet软件包管理器>管理解决方案的NuGet软件包]
然后,应将jquery和jquery.ui.combined添加到Site.Master中的ScriptManager中。如下所示:
<asp:ScriptManager runat="server">
<Scripts>
<%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
<%--Framework Scripts--%>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="jquery.ui.combined" />
<asp:ScriptReference Name="bootstrap" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
<%--Site Scripts--%>
</Scripts>
</asp:ScriptManager>
<script src="https://code.jquery.com/jquery-1.12.1.js"></script>
这解决了我同样的问题。
谢谢。(“#日期选择器”)。日期选择器不是一个函数
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
<asp:ScriptManager runat="server">
<Scripts>
<%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
<%--Framework Scripts--%>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="jquery.ui.combined" />
<asp:ScriptReference Name="bootstrap" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
<%--Site Scripts--%>
</Scripts>
</asp:ScriptManager>
<script src="https://code.jquery.com/jquery-1.12.1.js"></script>