jQuery UI $.datepicker()不存在谷歌代码CDN(本地工作)



当我使用以下代码链接到存储在Google服务器上的jQuery UI文件时:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>

…在我的脚本$(document).ready ()中,我做了以下操作…

$("#date-processed").datepicker ({ dateFormat: 'M. dd, yy' });

该脚本将在该页面上的所有浏览器上中断。原因是它说"datepicker"不作为一个函数存在。所以,如果我去http://jqueryui.com/download下载自定义jQuery UI库,带有UI Core和Datepicker,并将该文件链接到我的,它工作得很好。

所以,为了实验,我从http://jqueryui.com/download下载了自定义jQuery UI库,所有都检查过了,然后我谷歌的jQuery UI的CDN副本,文件大小有7kb的差异。

在大多数的Datepicker教程和例子中,我看到,人们使用谷歌的CDN副本很好,所以我认为这一定是我做错了,而不是不一致的谷歌的一部分。我已经验证了我的本地版本号和Google的jQuery UI的CDN版本号是一致的。有谁熟悉谷歌的CDN和jQuery UI来解释这种情况吗?

Qorbani要求我使用JSFiddle发布源代码,所以我玩了一下,发现当我使用JSFiddle (http://jsfiddle.net/Znjvh/3/)时它可以工作。然后我意识到问题是,在页面上,我也使用jQuery工具,并包括它 jQuery UI。当我把它移到jQuery UI上面时,一切都很好(http://jsfiddle.net/Znjvh/5/)。

我去寻找jQuery UI和jQuery Tools之间的冲突,发现我正在使用的jQuery Tools的标准URL http://cdn.jquerytools.org/1.2.6/jquery.tools.min.js也包含jQuery。这可能就是冲突的原因(尽管可能有更多的冲突)。正如"mu太短"所指出的,jQuery Tools和jQuery UI都使用.tabs(),例如)。

无论如何,对于其他偶然发现这个问题的用户,如果您同时使用jQuery工具和jQuery UI,请确保您包含的jQuery工具而不是也包含jQuery。我通过将URL更改为http://cdn.jquerytools.org/1.2.6/tiny/jquery.tools.min.js (http://jsfiddle.net/Znjvh/6/)来修复它。

谢谢你的帮助,伙计们!

最新更新