3

当我使用以下代码链接到存储在 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并下载带有 UI Core 和 Datepicker 的自定义 jQuery UI 库并将该文件链接到我的文件中,它就可以正常工作。

因此,为了进行实验,我从http://jqueryui.com/download下载了自定义的 jQuery UI 库并检查了所有内容,然后我在 Google 的 jQuery UI 的 CDN 副本中下载,文件大小有 7kb 的差异。

在我见过的大多数 Datepicker 教程和示例中,人们都很好地使用了 Google 的 CDN 副本,所以我认为这一定是我做错了,而不是 Google 的不一致。我已经验证了我的本地版本号和谷歌的 jQuery UI 的 CDN 版本号是一样的。任何对 Google 的 CDN 和 jQuery UI 足够熟悉的人都可以对这种情况有所了解吗?

4

1 回答 1

1

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 太短”所指出的那样,.tabs()例如,jQuery Tools 和 jQuery UI 都使用)。

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

谢谢你们的帮助,伙计们!

于 2012-01-04T03:15:55.717 回答