如何避免jquery库和其它库的冲突

来源:互联网 发布:如何拍评价蛤蟆知乎 编辑:程序博客网 时间:2024/04/30 02:13

1.产生原因:

默认情况下:jQuery使用 $ 作为jquery的快捷方式,如果别的js库也使用$的话,就可能产生冲突。为避免这种冲突,需要在把jquery引入页面后,使用jquery前把jquery设置为非冲突模式。

2.解决方法:

  方法1:使用jquery的命名空间,当然就不会冲突了。

 1 <!-- Loading jQuery before other libraries --> 2 <script src="jquery.js"></script> 3 <script src="prototype.js"></script> 4 <script> 5   6     // Use full jQuery function name to reference jQuery 7     jQuery(document).ready(function(){ 8      jQuery("div").hide(); 9    });10  11     // Use the $ variable as defined in prototype.js12     window.onload = function() {13    var mainDiv = $('main');14   };15  16 </script>

 

  方法2:声明一个新的变量,来代替$。

 1 <!-- Putting jQuery into no-conflict mode --> 2 <script src="prototype.js"></script> 3 <script src="jquery.js"></script> 4 <script> 5     // $j is now an alias to the jQuery function; 6     // creating the new alias is optional 7     var $j = jQuery.noConflict(); 8     $j(document).ready(function(){ 9        $j("div").hide();10      });11  12     // The $ variable now has the prototype meaning,13     // which is a shortcut for document.getElementById.14     // mainDiv below is a DOM element, not a jQuery object15     window.onload = function(){16        var mainDiv = $('main');17     }18 </script>

  方法3:给ready()方法增加一个参数。比较常用此方法。

 1 <!-- Another way to put jQuery into no-conflict mode --> 2 <script src="prototype.js"></script> 3 <script src="jquery.js"></script> 4 <script> 5   6     jQuery.noConflict(); 7     jQuery(document).ready(function($){ 8        // You can use the locally-scoped $ in here as an alias to jQuery 9        $("div").hide();10      });11  12     // The $ variable in the global scope has the prototype.js meaning13     window.onload = function(){14        var mainDiv = $('main');15     }16  17 </script>

 

 

 

 

 

 

 

 

原创粉丝点击