jQuery.noConflict( [removeAll ] )
removeAll
类型: Boolean
一个布尔值,判断是否从全局作用域中内去除所有jQuery变量(包括jQuery本身)。
很多javascript库使用 $
作为一个函数或者变量名,正如jquery做的一样。在jQuery下 $
只是jQuery
的一个别名,所以不使用 $
所有功能都是有效的。如果我们需要同时使用jQuery和其他javascript库,我们可以使用 $.noConflict()
把$
的控制权交给其他库。旧引用的$
被保存在jQuery的初始化; noConflict()
简单的恢复它们。
如果由于某种原因,加载两个版本的jQuery(这是不推荐), 第二个版本中调用$.noConflict(true)
将返回全局的jQuery变量给第一个版本。
1
2
3
4
5
6
|
|
这里有个技巧对于解决冲突特别有效。.ready()
方法可以给 jQuery 对象取个别名,这样就能够在传给 .ready()
的回调函数的内部继续使用 $ 而不用担心冲突(愚人码头注:原因:.ready()是一个闭包):
1
2
3
4
5
6
7
8
9
|
|
如果必要的话,我们可以释放jQuery
名字,传递true
作为一个参数给这个方法。 这不是必须的,如果我们必须这样做的话(举个例子,如果我们在同一个页面上使用多个版本的jQuery库), 我们必须考虑到大多数插件依靠jQuery
存在的变量,这种情况下,可能导致插件不能正常操作。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>在同一个页面中加载多个不同的jQuery版本</title>
<!-- 从谷歌服务器加载jQuery最新版本 -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript">
var jQuery_New = $.noConflict(true);
</script>
<!-- 加载jQuery1.6.2版本 -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
var jQuery_1_6_2 = $.noConflict(true);
</script>
<!-- 加载jQuery1.5.2版本 -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
var jQuery_1_5_2 = $.noConflict(true);
</script>
<!-- 加载jQuery1.4.2版本 -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
var jQuery_1_4_2 = $.noConflict(true);
</script>
<!-- 加载jQuery1.3.2版本 -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>
<script type="text/javascript">
alert(jQuery_New.fn.jquery);
alert(jQuery_1_6_2.fn.jquery);
alert(jQuery_1_5_2.fn.jquery);
alert(jQuery_1_4_2.fn.jquery);
alert(jQuery_1_3_2.fn.jquery);
jQuery_New(function($){$('<p>我是最新的'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');});
jQuery_1_6_2(function($){$('<p>我是'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');});
jQuery_1_5_2(function($){$('<p>我是'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');});
jQuery_1_4_2(function($){$('<p>我是'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');});
jQuery_1_3_2(function($){$('<p>我是'+$.fn.jquery+'版本添加进来的。</p>').appendTo('body');});
</script>
</head>
<body>
在同一个页面中加载多个不同的jQuery版本
<br>
</body>
</html>
引用自:http://www.css88.com/jqapi-1.9/jQuery.noConflict/ 更多例子
http://www.cnblogs.com/RascallySnake/archive/2010/05/07/1729417.html
http://www.cnblogs.com/liyunqi007/archive/2011/10/22/2221178.html