2011-06-13 128 views
6

我正在尝试使用Nivo JQuery Slider(http://nivo.dev7studios.com/)和可滚动画廊(http://flowplayer.org/tools/demos/scrollable/index.html) 。JQuery版本冲突

现在,我遇到了一个问题,基本上NIVO滑块使用此jQuery库:

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

和滚动库使用这一个:

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

当两者都被启用,只有缩略图画廊的作品(因为它的脚本导入是在nivo之后完成的),当1.42版本启用时,只有Nivo能够运作,并且只有1.2.5版本启用时,只有可滚动画廊才有效。

我该怎么办?

+1

也许是http://stackoverflow.com/questions/1566595/can-i-use-multiple-versions-of-jquery-on-the-same-page的副本 – 2011-06-13 14:56:37

+1

尝试更改每个.js文件加载时同时使用一个兼容的jQuery版本。 – ngen 2011-06-13 14:57:17

+0

坚持版本1.2.5的库是我非常小心的 - 这是一个非常旧的版本,所以如果这个插件没有被更新,那么它将来会变得更糟。有像十亿图片库插件可供选择,所以应该有可能找到更积极维护的东西。 – Pointy 2011-06-13 15:03:32

回答

8

使用此解决方案,如果你不能用一个单一的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,在海基会使用它(自我执行的函数)像这样把代码:

(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,您可以直接使用$变量。

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

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

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

+0

我对JQuery并不十分熟悉,而且我也没有真正理解我需要在第二部分中做什么。 – 2011-06-14 12:04:51

+0

更新了我的答案,但仍然最好只有一个版本的jQuery在网页 – 2011-06-14 16:15:02

+0

谢谢,所以基本上使用一个特定的jQuery库取决于你想要的div – 2011-06-15 10:11:39

2

jquery tools网站上说,升级将在一个月内完成,使其符合Jquery 1.6标准。

这就是说,有很多不同的方法来剥皮这只猫,而且大多数不是这个时代的背后。我一直在使用jQuery Infinite Carousel,并取得了巨大成功。它看起来和行为几乎相同,并且与最新版本的jQuery没有冲突。

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

+0

谢谢,我决定去这个旋转木马,它看起来很好。升级时应该值得,谢谢。 – 2011-06-14 12:49:11

1

只是简单复制粘贴&这个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%.............. :)享受!