如何允许JQuery 与 其他库共存

怎样让jQuery和其它js库共存

有时候需要同时使用jQuery和其它javascript,比如在joomla中默认的是motools,但很多人还是希 望能够使用jQuery,如果直接调用的话,由于两个库都使用了$作为简写,会造成程序冲突的情况,那么 ,怎样让jQuery和其它javascript库共存呢?有以下三种方法(均来自于官方网站):

1.覆盖$ 函数,使用jQuery代替$

在jQuery和其它库已经加载之后,可以调用jQuery.noConflict ().

 

 
   <script src="prototype.js"></script>
   <script src="jquery.js"></script>
   <script type="text/javascript"><!--
     jQuery.noConflict();
 
     // Use jQuery via jQuery(...)
     jQuery(document).ready(function(){
       jQuery("div").hide();
     });
 
     // Use Prototype with $(...), etc.
     $('someid').hide();
 
// --></script>
 
 
 
 

这样会使$恢复到原始库,在下面的代码中使用"jQuery",而不是"$"

2.使用简称来代替 $

 

 
 
   <script src="prototype.js"></script>
   <script src="jquery.js"></script>
   <script type="text/javascript"><!--
     var $j = jQuery.noConflict();
 
     // Use jQuery via $j(...)
     $j(document).ready(function(){
       $j("div").hide();
     });
 
     // Use Prototype with $(...), etc.
     $('someid').hide();
 
// --></script>
 
 
 

 

这样的话相当于$j代替$,是比较接近的一种用法了,当然可以使用其它自己喜欢的字符,比如 $J,$jq等等。

3.希望保留$

如果确实希望保留$而不是使用其它名称来代替,还有一种方 法。

 

 <html>
 <head>
   <script src="prototype.js"></script>
   <script src="jquery.js"></script>
   <script>
     jQuery.noConflict();
 
     // Put all your code in your document ready area
     jQuery(document).ready(function($){
       // Do jQuery stuff using $
       $("div").hide();
     });
 
     // Use Prototype with $(...), etc.
     $('someid').hide();
   </script>
 </head>
 <body></body>
 </html>
posted @ 2017-03-03 20:33  注定风是不羁旅人  阅读(151)  评论(0编辑  收藏  举报