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

发布于 2024-08-29 12:29:07 字数 381 浏览 7 评论 0原文

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

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

有没有办法让它们一起生活在同一页面上,或者有没有办法让选项卡在 realease 1.2.1 下工作?

我不想在另一个插件上重建轮播,因为这个插件已经换肤并且可以根据需要工作。

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

I am using this jquery plugin for a carousel controller http://sorgalla.com/projects/jcarousel/, it is based on jquery release 1.2.1

I also need to have tabs on the page, but when including the current jquery release in the page, the carousel stops working.

Is there a way to have them both live together on the same page, or is there a way to have tabs work under realease 1.2.1?

I rather not rebuild the carousel on another plugin, since this one is already skinned and works just as needed.

I tried using jQuery.noConflict, the jcarousel controller still didn't work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

软糖 2024-09-05 12:29:07

抱歉,您需要花时间 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); 

它应该能够“挂在”jQuery 1.4之后的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 别名。

Sorry to say, you are going to want to take the time to a) fix the old plugin to work on newer versions of jQuery yourself, or b) switch to a carousel that works with the new versions of jQuery. Including two versions of jQuery on a site is bad practice, and you will be asking for trouble later, but it is not impossible.

You may be able to do something like this:

<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>

Assuming that oldcarousel.js uses the closure (meaning the first and last lines of code look like this):

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

It should be able to "hang on" to jQuery 1.2 after 1.4 overwrites it.

It might also work to change the include order:
You may be able to do something like this:

<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>

As passing true to .noConflict() should restore the $ and jQuery aliases from the new version.

暖风昔人 2024-09-05 12:29:07

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

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

There are tons of other carousel plugins that you could use (this one looks pretty good). Is there any reason you need to use that specific one? If not, I'd recommend you save yourself a lot of headache and simply switch to a different plugin.

Otherwise, jQuery.noConflict should work. If not, then post the code you're using so we can tell you what's wrong.

[浮城] 2024-09-05 12:29:07

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

祝你今天过得愉快。

This one over at jQuery API docs might help you: jQuery.noConflict.

Have a nice day.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文