JQuery noConflict()(名称冲突问题)

Posted yachjin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery noConflict()(名称冲突问题)相关的知识,希望对你有一定的参考价值。

一、noConflict()方法释放JQuery库对$变量的控制权,可以为jQuery 变量规定新的自定义名称。

二、在某些情况下,可能有必要在同一个页面中使用很多个javascript库。由于很多库都使用 $

标识符(因为它简短方便),因此就需要一种方式来避免名称冲突。为解决这个问题,jQuery提

供了一个 jQuery.noConflict() 方法,调用该方法可以把对 $标识符的控制权让渡还给其他库。使

用jQuery.noConflict() 方法的一般模式如下:

       <script src="prototype.js"></script>

       <script src="jquery.js"></script>

       <script>

              jQuery.noConflict();

       </script>

       <script src="myscript.js"></script>

       首先,包含jQuery之外的库(这里是Prototype)。然后,包含jQuery库,取得对 $ 的使用

权。接着,调用 .noConflict() 方法让出 $ ,以便将控制权交还给最先包含的库(Prototype)。

这样就可以在自定义脚本中使用两个库了——但是,在需要使用jQuery方法时,必须记住要用

jQuery而不是 $ 来调用

       在这种情况下,还有一个在 .ready() 方法中使用 $ 的技巧。我们传递给它的回调函数可以

接收一个参数——jQuery对象本身。利用这个参数,可以重新命名 jQuery为 $ ,而不必担心造

成冲突,如下面的代码所示:

      jQuery(document).ready(function($) {

           //在这里,可以正常使用!

      });

或者,也可以使用刚刚介绍的简写语法:

       jQuery(function($) {

               //使用$的代码

       });

三、也可以将$.noConflict()赋给一个变量。

        var jq=$.noConflict();
         jq(document).ready(function(){

                 //使用jq的代码   如:  jq(‘body > div‘).addClass(‘frames‘);
         })



以上是关于JQuery noConflict()(名称冲突问题)的主要内容,如果未能解决你的问题,请参考以下文章

jQuery名称冲突

jQuery-名称符号$与其他库函数冲突

Mailchimp 的 $mcj = jQuery.noConflict(true) 导致冲突

我是不是使用 jQuery noconflict 来避免插件冲突?

解决jQuery的$冲突问题

jquery.noConflict源码分析