解决jQuery引入多个库的冲突问题 jQuery.noConflict( [removeAll ] )
2014-04-08 19:25
731 查看
jQuery.noConflict( [removeAll ] )
removeAll
类型: Boolean
一个布尔值,判断是否从全局作用域中内去除所有jQuery变量(包括jQuery本身)。
很多javascript库使用
如果由于某种原因,加载两个版本的jQuery(这是不推荐), 第二个版本中调用
这里有个技巧对于解决冲突特别有效。
$ 而不用担心冲突(愚人码头注:原因:.ready()是一个闭包):
如果必要的话,我们可以释放
这不是必须的,如果我们必须这样做的话(举个例子,如果我们在同一个页面上使用多个版本的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
removeAll
类型: Boolean
一个布尔值,判断是否从全局作用域中内去除所有jQuery变量(包括jQuery本身)。
很多javascript库使用
$作为一个函数或者变量名,正如jquery做的一样。在jQuery下
$只是
jQuery的一个别名,所以不使用
$所有功能都是有效的。如果我们需要同时使用jQuery和其他javascript库,我们可以使用
$.noConflict()把
$的控制权交给其他库。旧引用的
$被保存在jQuery的初始化;
noConflict()简单的恢复它们。
如果由于某种原因,加载两个版本的jQuery(这是不推荐), 第二个版本中调用
$.noConflict(true)将返回全局的jQuery变量给第一个版本。
1 2 3 4 5 6 | <script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); // Code that uses other library's $ can follow here. </script> |
.ready()方法可以给 jQuery 对象取个别名,这样就能够在传给
.ready()的回调函数的内部继续使用
$ 而不用担心冲突(愚人码头注:原因:.ready()是一个闭包):
1 2 3 4 5 6 7 8 9 | <script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); jQuery(document).ready(function($) { // Code that uses jQuery's $ can follow here. }); // Code that uses other library's $ can follow here. </script> |
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
相关文章推荐
- jquery库与其他库冲突的问题解决-jquery.noConflict()
- 解决jquery在多插件中$冲突问题---jQuery.noConflict()方法
- 关于Jquery的noConflict()方法,解决Jquery库与其他库冲突问题
- jQuery.noConflict() 方法—— jquery库与其他库冲突的问题解决
- jquery库与其他库冲突的问题解决-jquery.noConflict()
- jquery库与其他库冲突的问题解决-jquery.noConflict()
- jquery库与其他库冲突的问题解决-jquery.noConflict()
- Discuz 和jQuery冲突问题及解决办法(详细步骤)——discuz引入jquery后,不能diy问题
- jQuery中noConflict()机制的冲突解决方法
- jquery插件冲突(jquery.noconflict)解决方法分享
- jquery插件冲突(jquery.noconflict)解决方法分享
- jQuery.noConflict() 解决冲突 原理深入
- 解决jQuery冲突 noConflict
- magento引入jquery库和prototype库冲突的解决办法
- jQuery-ui引入后Vs2008的无智能提示问题解决方法
- 解决jQuery-ui引入后Vs2008的无智能提示问题
- 解决DWR与jQuery之间$的冲突问题
- 解决多个listview或者gridview与scrollview滚动条冲突的问题
- 防止$冲突的方法jQuery.noConflict()
- prototype.js 和jquery-1.6.2.js冲突问题解决方法