如何阻止两个jquery库相互冲突?

时间:2012-03-24 12:12:03

标签: php javascript jquery html

我的页面,包含几个幻灯片,只与js / jquery-1.5.2.min.js完美配合。

我最近在谷歌CDN上向我的网页(www.ug-mart.com)推出了一个顶级横幅,但顶部横幅没有用。我不得不删除顶部横幅的js / jquery-1.5.2.min.js。

删除了js / jquery-1.5.2.min.js后,最初运行良好的所有内容都无效。只有顶部横幅有效。好像我不能在同一页面上同时拥有和js / jquery-1.5.2.min.js。

有没有办法阻止两个jquery库冲突,并进行协作?

期待您的回复。

SirBT

5 个答案:

答案 0 :(得分:2)

请参阅jQuery的$.noConflict()

虽然,你真的会变得更好,重新建立任何需要旧版jQuery的插件并仅使用新版本。

答案 1 :(得分:2)

您可以使用.noConflict()安全地使用jQuery和其他库。通常,这是使用$函数名称的冲突。

我更喜欢在“闭包”方法中使用jquery:

(function($){

    //i can use "$" safely in here

}(jQuery));

另外,如果您使用的是多个版本的jQuery,那么请不要这样做。只需下载最新版本并使用它。它仍然应该迎合一些旧的API。


heres a sample code以显示其工作原理:

//lets hijack the "$"
$ = (function() {
    return {
        libName: "some other library using $"
    }
}());

//create a closure for us to use "$"
(function($) {

    //we can now use the $ safely in this closure  
    $('body').text('hello world! in the body!');

    //let's check "$" in here
    console.log('in here, "$" is jQuery:',$);

}(jQuery));

//let's check "$" out here
console.log('out here, "$" is:', $);​

答案 2 :(得分:1)

$.noConflict()是否有效? 首先导入js / jquery-1.5.2.min.js并使用$.noConflict()注册js / jquery-1.5.2.min.js。然后使用另一个代码块并导入另一个版本的jQuery。最后,使用jQuery.xxx()而不是$.xxx()

重写顶部横幅

我认为这应该是有效的。

答案 3 :(得分:1)

按规定更换其中任何一个: -  在其中任何一个中声明

$a = jQuery.noConflict();

将该文件的所有$替换为该文件中的$ a

答案 4 :(得分:0)

简单的答案。 在脚本的末尾添加它。

<script src=""></script>
<script src=""></script>

<script type="text/javascript">
$.noConflict(true);
</script>