0

我在我正在制作的网站上使用以下代码:

            <!-- ScrollTo & highlightfade -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>              
<script type="text/javascript" src="'.$url.'/js/jquery.scrollTo-min.js"></script>
<script type="text/javascript" src="'.$url.'/js/jquery.highlightFade.js"></script>
<script type="text/javascript" src="'.$url.'/js/init.js"></script>

            <!-- The rest of the scripts -->
<script type="text/javascript" src="http://code.jquery.com/ui/1.8.23/jquery-ui.min.js"></script>

<script type="text/javascript" src="'.$url.'/js/jquery.tipTip.js"></script>
<script type="text/javascript" src="'.$url.'/js/jquery.nivo.slider.pack.js"></script>
<script type="text/javascript" src="'.$url.'/js/nivo.slider.js"></script>
<script type="text/javascript" src="'.$url.'/js/nicEdit.js"></script>
<script type="text/javascript" src="'.$url.'/js/expand.js"></script>
<script type="text/javascript" src="'.$url.'/js/turn.js"></script>
  • 如您所见,我正在使用 2 个 jQuery 库,据我所知,这是完全错误的。问题是它只能以这种方式工作!如果我删除其中一个,一些脚本将无法工作。我还尝试将库更新到最新版本并仅使用该版本,但只有少数上面的脚本有效。

  • 我的第二个问题是:当我尝试加载 datetimepicker 脚本时它不起作用,这似乎是因为 jQuery 库冲突。

我无法仅使用一个库使所有脚本同时工作,并且在使用两个库时 datetimepicker-script 不起作用。我究竟做错了什么?

4

2 回答 2

1

您正在使用 jQuery 和 jQuery UI 以及一大堆插件,这并没有错。我的假设是,如果您对此不确定,请在使用前阅读有关 jquery 和 UI 的更多信息。

如果日期选择器造成问题,请查看一些相关示例以尝试查看您做错了什么 - http://jqueryui.com/datepicker/

编辑: @user1580380 jquery 和 jquery UI 是两个独立的东西,第一个是不错的简单 js 库,第二个是添加额外功能的 UI,如 datepicker。您确实需要包含两者才能使日期选择器正常工作。您的错误很可能发生在日期选择器的实现中,请随时为此粘贴一些代码。

编辑:我注意到您使用的是 jquery 1.3,很可能这是问题所在,将其更新到最新版本 1.8.x 并查看是否可以纠正任何问题。

于 2012-10-27T15:57:22.617 回答
0

您的代码片段显示了多种类型的脚本:

  1. 核心 jQuery
  2. 使用和依赖 jQuery 的 jQuery 插件脚本
  3. 您自己的使用和依赖 jQuery 的脚本
  4. jQuery UI(基于 jQuery 构建的 UI 库)
  5. 使用和依赖 jQuery 和 jQuery UI 的 jQuery 插件脚本

每个使用 jQuery 的脚本都是针对特定版本的 jQuery 编写和测试的。有时,它适用于多个版本的 jQuery,有时它只适用于一个特定版本的 jQuery。

使用 jQuery 的脚本作者有责任指定它与哪些版本的 jQuery 兼容。使用脚本的人有责任了解和理解所需的 jQuery 版本,并为脚本正常工作创建适当的环境(存在正确版本的 jQuery)。

特定版本的 jQueryUI 仅与某些版本的核心 jQuery 兼容。同样,jQueryUI 插件仅与 jQueryUI 和 jQuery 的某些版本兼容。您自己必须混合和匹配所有这些的兼容版本。

如果您希望使用多个插件,每个插件都需要不同版本的 jQuery,有时可以管理它,但设置起来并不容易,它不是使用 jQuery 的有效方式,它需要一些自定义编程以加载多个版本并确保正确的插件获得正确的 jQuery 版本。一般来说,完全不建议这样做,因为它效率低下、复杂且容易搞砸,特别是如果您不是高级 javascript 开发人员。

首先,您应该列出您拥有的每个脚本都说它与哪个版本的 jQuery 兼容。当您拥有该列表时,您可以开始了解什么可能与什么兼容,或者开始研究如何找到一组脚本来解决您的问题,这些脚本都与相同版本的 jQuery 兼容。

例如,jQueryUI 1.8.23 比 jQuery 1.3.2(一个相当老的核心 jQuery 库版本)更新了很多。我建议从这两个开始,并确保它们兼容。然后,只添加与您最终得到的这两者的组合兼容的插件。您需要查阅每个插件的文档以了解它与哪些版本的 jQuery 兼容。如果它没有任何关于 jQuery 兼容性的文档,则查看插件的源代码,看看那里是否有任何指示。如果仍然没有任何兼容性信息,那么您将不得不进行自己的测试/调试以确定兼容性或选择提供兼容性信息的不同解决方案。

如果您是 jQuery 和 javascript 开发的相对新手,那么您可能希望坚持使用包含有关哪些有效和哪些无效的文档的组合,并构建您的环境以与他们的测试要求兼容。调试和修复不兼容问题不是初学者的话题。您可能(或可能无法)能够确定问题出现在 javascript 调试控制台中的第一个位置,但修复您发现的错误是一个更高级的主题。

如果您最终确定必须在同一页面上为不同的插件加载多个版本的 jQuery,并且没有更好的方法来解决您的问题,那是可能的,但必须谨慎行事。这个jQuery 文档页面描述了如何完成的基础知识。

于 2012-10-27T16:24:16.080 回答