在同一页面上使用2个不同的jquery版本

时间:2010-04-19 06:21:14

标签: jquery tabs carousel jcarousel

我将这个jquery插件用于轮播控制器http://sorgalla.com/projects/jcarousel/,它基于jquery版本1.2.1

我还需要在页面上有标签,但是当在页面中包含当前的jquery版本时,轮播停止工作。

有没有办法让它们在同一页面上共存,或者有没有办法让标签在realease 1.2.1下工作?

我宁愿不在另一个插件上重建旋转木马,因为这个已经剥了皮并且可以根据需要工作。

我尝试使用jQuery.noConflict,jcarousel控制器仍无效。

3 个答案:

答案 0 :(得分:1)

您可以使用tons个其他轮播插件(this one看起来相当不错)。你有什么理由需要使用那个特定的吗?如果没有,我建议你省去很多头痛,只需切换到另一个插件。

否则,jQuery.noConflict 工作。如果没有,那么发布您正在使用的代码,以便我们可以告诉您哪里出错了。

答案 1 :(得分:1)

很抱歉,你要花时间a)修复旧的插件以自己处理更新版本的jQuery,或者b)切换到适用于新版jQuery的轮播。在网站上包含两个版本的jQuery是糟糕的做法,而你以后会要求麻烦,但这并非不可能。

你可能会做这样的事情:

<script type="text/javascript" src="/js/jquery-1.2.1.js"></script>
<script type="text/javascript" src="/js/oldcarousel.js"></script>
<script type="text/javascript">jQuery12 = jQuery.noConflict();</script>
<script type="text/javascript" src="/js/jquery-1.4.2.js"></script>

假设oldcarousel.js使用闭包(意味着第一行和最后一行代码如下所示):

(function($){
  // and that all plugin code in here references $ not jQuery
})(jQuery); 

它应该能够在1.4覆盖之后“挂起”到jQuery 1.2。

它可能也可以更改包含顺序: 你可能会做这样的事情:

<script type="text/javascript" src="/js/jquery-1.4.2.js"></script>
<script type="text/javascript" src="/js/jquery-1.2.1.js"></script>
<script type="text/javascript" src="/js/oldcarousel.js"></script>
<script type="text/javascript">jQuery12 = jQuery.noConflict(true);</script>

true传递给.noConflict()时,应该从新版本中恢复$jQuery别名。

答案 2 :(得分:0)

这个jQuery API文档可以帮助您:jQuery.noConflict

度过愉快的一天。