1

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

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

有没有办法让他们一起生活在同一个页面上,或者有没有办法让标签在版本 1.2.1 下工作?

我宁愿不在另一个插件上重建轮播,因为这个已经被蒙皮并且可以根据需要工作。

我尝试使用 jQuery.noConflict,jcarousel 控制器仍然无法正常工作。

4

3 回答 3

1

您可以使用大量其他轮播插件(这个看起来不错)。你有什么理由需要使用那个特定的吗?如果没有,我建议您省去很多麻烦,只需切换到其他插件即可。

否则,应该工作。如果没有,请发布您正在使用的代码,以便我们告诉您出了什么问题。jQuery.noConflict

于 2010-04-19T07:01:41.427 回答
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

于 2010-04-19T07:03:32.510 回答
0

jQuery API 文档中的这一篇可能会对您有所帮助:jQuery.noConflict

祝你今天过得愉快。

于 2010-04-19T06:50:48.767 回答