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');
         })

猜你喜欢

转载自www.cnblogs.com/yachjin/p/9038997.html