怎样让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>