jQuery让渡 $操作符
jQuery让渡 $操作符
在jQuery中,"$“符号有着重要的作用。除了jQuery,还有其他一些JavaScript脚本库也使用了 " $ " 符号,当项目开发中因为某些原因同时使用了JQuery和另一个同样使用” $ “符号的脚本库,就会产生冲突。以下代码中,Prototype库的“ $ ”符号会覆盖jQuery的” $ "符号。
<script type="text/javascript" src="../js/jquery-1.12.4.min.js"/>
<script type="text/javascript" src="../js/prototype.js"/>
为了使用jQuery能够与其他同样使用" $ "符号的脚本库共同工作,jQuery定义了jQuery.noConflict()方法,放弃对 “ $ ”符号的使用权,并可以通过返回值指定一个替代符号。如下。
jQuery.noCoflict(); //让渡 $ 的使用权,后续jQuery代码中只能使用jQuery替代 $
jQuery("#show").click(...);
或者重新指定一个替代的符号:
var $j=jQuery.noCofilct();//让渡 $ 的使用权,并指定$j替代 $
$j("#show").click(...);
但是无论采用哪种方式,都会改变jQuery的编码风格,不仅更加烦琐,而且对于已有jQuery代码的重用也会产生不利影响。
为了解决冲突的同时尽量减少对JQuery代码的影响,建议如下处理方法。
jQuery.noConflict();//让渡 $ 的使用权,其他脚本库可以使用 $
jQuery(document).ready(function($){
//在此代码中可以继续使用$编写jQuery代码
...//省略其他代码。
});
或者
jQuery.noConflict(); //让渡 $ 的使用权,其他脚本库可以使用 $
(function($){
//在此代码中可以继续使用$编写jQuery代码
$(document).ready(function(){
...//省略其他代码。
});
})(jQuery);