JQuery版本冲突

时间:2011-06-13 14:54:27

标签: javascript jquery

我正在尝试使用Nivo JQuery Slider(http://nivo.dev7studios.com/)和Scrollable Gallery(http://flowplayer.org/tools/demos/scrollable/index.html)。

现在我遇到了一个问题,基本上Nivo Slider使用这个JQuery库:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 

并且Scrollable Gallery使用了这个:

<script src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js"></script>

当两者都启用时,只有缩略图库可以工作(因为它的脚本导入是在nivo之后完成的),当启用1.42版本时只有Nivo可以工作,而当只启用1.2.5版本时,只有可滚动图库的工作原理。

我该怎么办?

3 个答案:

答案 0 :(得分:9)

如果您不能对这两个插件使用单个jQuery文件,请使用此解决方案:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
  var jQuery_1_4_2 = jQuery.noConflict();
</script>
<script src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js"></script>

要使用jQuery 1.4.2,请将代码放在SEF(Self Executing Function)中,如下所示:

(function($){
   //code using jQuery 1.4.2
   //here the $variable will be the jQuery object of 1.4.2
})(jQuery_1_4_2)

对于jQuery 1.2.5,您可以直接使用$ variable。

<强>更新 根据您的评论,以下是使用它的方式。

如果要使用jQuery 1.4.2,请使用jQuery_1_4_2对象
例如:jQuery_1_4_2("#abc").slider(options)

如果你想使用jQuery 1.2.5使用$或jQuery对象
例如:$("#abc").scrollable(options)

答案 1 :(得分:2)

Jquery Tools网站表示,升级将在一个多月内完成,使其符合Jquery 1.6。

话虽如此,有很多不同的方法可以给这只猫皮肤涂抹,而且大部分时间都不是这样。我一直在使用jQuery Infinite Carousel取得巨大成功。它的外观和行为几乎完全相同,并且与最新版本的jQuery没有冲突。

从你的发布中不清楚,但如果你这样做,我会避免加载两个不同版本的Jquery。这是一个额外的开销,实际上根本没有帮助你的网站。

答案 2 :(得分:1)

简单只是复制&amp;将此java脚本代码粘贴到“HEAD”TAG

// jquery版本冲突代码

  var newJQuery = jQuery.noConflict(true),
        oldJQuery = jQuery;

  (function ($) {
        // code that needs 1.4.2 goes here
   }(newJQuery));

  (function ($) {
        // code that needs 1.2.6 goes here
   }(oldJQuery));

  // code that needs oldJQuery and newJQuery can go here

看到它的工作110%.......................... :)享受!!!