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

作者:人气:来源:2015-03-23

广告载入中...

随着JS越来越火,各种有针对性的js库也越来越多,如目前相对流行的YUI,Prototype,Ext等。但是它们却时不时地相互闹些 小矛盾,常见的原因是它们定义的全局对象冲突了,特别是变量“$”,几乎百分之百要中招。以下提供两个解决办法:

方法一

为jQuery自定义命名空间,使得jQuery不使用其默认的名字空间,比如使用 $j() 而不是 jQuery() 。代码如下:

<!-- Putting jQuery into no-conflict mode -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
 
  var $j = jQuery.noConflict();
 
</script>

方法二

重载$函数。使用jQuery.noConflict()就可以通过重载$函数,从而区分开跟其他js库的重叠部分。代码如下:

<!-- Using the $ inside an immediately-invoked function expression -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
 
jQuery.noConflict();
 
(function($) {
 
   // your code here, using the $
 
})( jQuery );
</script>

注:解决方案由jQuery官网提供。原文地址:http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/

继续阅读:页面特效

分享吧:

手机移动