当我使用DatePicker,jQuery的UI插件时,在现有的.aspx页面中,我得到的错误是:
$("#datepicker").datepicker is not a function
但是,当我将创建并使用datePicker的相同代码复制并粘贴到与aspx页面位于同一目录中的HTML文件时,它可以完美地运行.这让我假设aspx页面中有一些JS文件阻止了datePicker或jQuery的UI JS文件正确加载.
任何人都可以确认我的信念或提供任何关于找到干扰jQuery的UI插件的罪魁祸首的提示吗?
几个小时我一直在努力解决类似的问题.然后结果是jQuery被包含两次,一次是由我添加jQuery函数的程序,一次是由我们的内部调试器.
如果有另一个库使用$ variable,您可以这样做:
var $j = jQuery.noConflict(); $j("#datepicker").datepicker();
还要确保您的javascript包含的顺序正确,以便在jquery.ui之前定义jquery核心库.我有这个问题.
当您从jQuery UI集中丢失文件时,通常会出现此错误.
仔细检查您是否拥有所有文件,jQuery UI文件以及CSS和图像,以及它们是否位于服务器上正确链接的文件/目录位置.
jQuery"$("#datepicker").datepicker不是一个函数"
我已经通过将以下三个文件放在表单末尾的body部分中来解决了这个问题.
如果您认为存在冲突,可以jQuery.noConflict()
在代码中使用.详细信息在文档中.
参考魔术 - 快速的快捷方式
如果你不喜欢一直输入完整的"jQuery",那么有一些替代的快捷方式:
将jQuery重新分配给另一个快捷方式
var $j = jQuery;
(如果您希望使用不同的库,这可能是最好的方法)使用以下技术,它允许您在代码块内部使用$而无需永久覆盖$:
(function($) { /* some code that uses $ */ })(jQuery)
注意:如果你使用这种技术,你将无法在这个假设$为Prototype的$的封装函数中使用Prototype方法,因此你可以选择在该块中仅使用jQuery.使用DOM ready事件的参数:
jQuery(function($) { /*some code that uses $ */ });
注意:同样,在该块内部,您不能使用Prototype方法
这是从文档的最后,可能对你有用
首先明白:你是否正好引用了jquery-ui.js文件?
尝试使用firebug的网络选项卡查找是否已加载,或者使用Web Developer Toolbar的Information\View javascript代码.