在同一页面上使用 2 个不同的 jquery 版本
我正在使用这个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
抱歉,您需要花时间 a) 自行修复旧插件以在较新版本的 jQuery 上工作,或者 b) 切换到适用于新版本 jQuery 的轮播。在一个网站上包含两个版本的 jQuery 是不好的做法,并且您稍后会自找麻烦,但这并非不可能。
你也许可以做这样的事情:
假设
oldcarousel.js
使用闭包(意味着代码的第一行和最后一行看起来像这样):它应该能够“挂在”jQuery 1.4之后的1.2覆盖它。
更改包含顺序也可能有效:
您也许可以执行以下操作:
将
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:
Assuming that
oldcarousel.js
uses the closure (meaning the first and last lines of code look like this):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:
As passing
true
to.noConflict()
should restore the$
andjQuery
aliases from the new version.还有大量其他轮播您可以使用的插件(这个看起来相当不错)。您有什么理由需要使用该特定的吗?如果没有,我建议您切换到不同的插件,这样可以省去很多麻烦。
否则,
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.jQuery API 文档中的这一内容可能会对您有所帮助:jQuery.noConflict。
祝你今天过得愉快。
This one over at jQuery API docs might help you: jQuery.noConflict.
Have a nice day.