`

jQuery与其他库冲突的解决方法

 
阅读更多
  在使用jQuery开发的时候,可能还会使用到其他的JS库,比如Prototype,但多库共存时可能会发生冲突;若是发生冲突后,可以通过以下几种方案进行解决:



     一、 jQuery库在其他库之前导入,直接使用jQuery(callback)方法如:

    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    <!--先导入jQuery -->  
    <script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script>  
    <!--后导入其他库 -->  
    <script src="prototype-1.6.0.3.js" type="text/javascript"></script>  
    </head>  
    <body>  
    <p id="pp">test---prototype</p>  
    <p >test---jQuery</p>  
      
    <script type="text/javascript">  
    jQuery(function(){   //直接使用 jQuery ,没有必要调用"jQuery.noConflict()"函数。  
        jQuery("p").click(function(){        
            alert( jQuery(this).text() );  
        });  
    });  
      
    $("pp").style.display = 'none'; //使用prototype  
    </script>  
    </body>  
    </html>  


二、 jQuery库在其他库之后导入,使用jQuery.noConflict()方法将变量$的控制权让渡给其他库,有以下几种方式:

<script type="text/javascript">  
jQuery.noConflict();                //将变量$的控制权让渡给prototype.js  
jQuery(function(){                  //使用jQuery  
    jQuery("p").click(function(){  
        alert( jQuery(this).text() );  
    });  
});  
  
$("pp").style.display = 'none';     //使用prototype  
</script>  
  
//代码二  
<script type="text/javascript">  
var $j = jQuery.noConflict();       //自定义一个比较短快捷方式  
$j(function(){                      //使用jQuery  
    $j("p").click(function(){  
        alert( $j(this).text() );  
    });  
});  
  
$("pp").style.display = 'none';     //使用prototype  
</script>  
  
//代码三  
<script type="text/javascript">  
jQuery.noConflict();                //将变量$的控制权让渡给prototype.js  
jQuery(function($){                 //使用jQuery  
    $("p").click(function(){        //继续使用 $ 方法  
        alert( $(this).text() );  
    });  
});  
  
$("pp").style.display = 'none';     //使用prototype  
</script>  
  
//代码四  
<script type="text/javascript">  
jQuery.noConflict();                //将变量$的控制权让渡给prototype.js  
(function($){                   //定义匿名函数并设置形参为$  
    $(function(){               //匿名函数内部的$均为jQuery  
        $("p").click(function(){    //继续使用 $ 方法  
            alert($(this).text());  
        });  
    });  
})(jQuery);                 //执行匿名函数且传递实参jQuery  
  
$("pp").style.display = 'none';     //使用prototype  
</script>  


    通过以上几方法就可以很好的去解决多库共存会发生冲突的问题了.

    参考 w3c: http://www.w3school.com.cn/jquery/core_noconflict.asp
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JQuery与其他库的冲突

    解决了Jquery和其他库之间的冲突 第一种方式就是直接使用JQuery,第二种方法是通过返回值来,第三种方式把$号传入,第四种方式通过匿名方式将jquery传入

    jQuery与其他JS库或jQuery文件冲突解决方法

    本人亲测,本人网页有两个JS效果,用到了两个jQuery文件(一个是jquery.min.js,另一个是jquery.pack.js),可以两个冲突,只能保留一个。 但效果就只能有一个。我想两个都保留,于是就想了很多办法,查了很多资料,...

    快速解决jQuery与其他库冲突的方法介绍

    通常,当在同一个页面上使用jQuery和其他库时,...将标识符$的控制权归还给其他库,允许在页面上混合使用jQuery与其他库。一旦执行了该函数,必须使用jQuery标识符而不是$标识符来调用jQuery的功能, 你也可以放弃jQue

    jQuery与其它库冲突的解决方法

    在jQuery库中,几乎所有的插件都被限制在它的命名空间里。全局的对象都很好地存储在jQuery命名空间里,因此当把jQuery和其它javascript类库一起使用时,不会引起冲突.

    jquery 与NVelocity 产生冲突的解决方法

    NVelocity的$与Jquery的$发生冲突时的解决方法有以下几个: 1、 使用jQuery.noConflict。 如:var j = jQuery.noConflict(); j.ajax(); 缺点:当使用jQuery的相关插件时,会使得插件失效哦! 2、 使用jQuery代替$. 如...

    jQuery多个版本和其他js库冲突的解决方法

    jQuery多个版本或和其他js库冲突主要是常用的$符号的问题,该怎么解决呢?下面小编给大家带来了jQuery多个版本和其他js库冲突的解决方法,一起看下吧

    jQuery库与其他JS库冲突的解决办法

    jQuery库与其他JS库冲突的解决办法

    关于jQuery库冲突的完美解决办法

    在使用jQuery开发的时候,可能还会使用到其他的JS库,比如Prototype,但多库共存时可能会发生冲突,下面这篇文章主要给大家介绍了关于jQuery库冲突的完美解决办法,需要的朋友可以参考借鉴,下面来一起看看吧。

    如何解决jQuery 和其他JS库的冲突

    1.jQuery库在其他库之后导入 在其他库和 jQuery 库都被加载完毕后,可以在任何时候调用 jQuery.noConflict() 函数来将变量 $ 的控制权移交给其他 JavaScript 库。示例如下: &lt;!DOCTYPE html PUBLIC -//W3

    如何解决Jquery库及其他库之间的$命名冲突

    介绍了Jquery库及其他库之间的$命名冲突的解决方法,有需要的朋友可以参考一下

    jQuery 美元符冲突的解决方法

    jQuery 美元符冲突的解决方法,使用jquery与别的js库共同使用的时候需要注意的地方。

    让jQuery与其他JavaScript库并存避免冲突的方法

    为了解决jQuery和其他JavaScript库中$()函数的冲突,需要取消jQuery的$()函数,为此jQuery提供了如下方法: 代码如下: //取消jQuery中的$()函数 jQuery.noConflict() ; 将上面的粗体字代码放在JavaScript代码的第一...

    jQuery $命名冲突解决方案汇总

    最近遇到个问题,同时引用了jquery库和另外一个js库。当用$XX去调用js库函数时,发现失效了!于是找资料,原来是jquery命名冲突了。因为许多JavaScript 库使用$作为函数或变量名,jquery也一样。其实$只是jquery的一...

    解决jquery插件冲突的问题

    这有助于确保jQuery不会与其他库的$对象发生冲突。 在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到$(“div p”)的地方,就必须换成jQuery(“div p”)。 ”’注意:”’这

    解决jquery中美元符号命名冲突问题

    然而,当我们引入多个js库后,在另外一个js库中也定义了$符号的话,那么我们在使用$符号时就发生了冲突。下面以引入两个库文件 jquery.js和prototype.js为例来进行说明。 第一种情况:jquery.js在prototype.js之后...

Global site tag (gtag.js) - Google Analytics