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