jQuery-noConflict()方法

noConflict()方法是解决如何同时在页面上使用jQuery和其它框架,

正如您所了解到的jQuery使用$符号作为jQuery的简写,如果其它的javascript框架也需要使用$符号作为简写怎么办呢?

其他一些 JavaScript 框架包括:MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 以及 Ext JS。
其中某些框架也使用 $ 符号作为简写(就像 jQuery),如果您在用的两种不同的框架正在使用相同的简写符号,有可能导致脚本停止运行。
jQuery 的团队考虑到了这个问题,并实现了 noConflict() 方法。

 

noConflict() 方法的作用是释放对$符号的控制,这样其它的脚本就可以使用它了

当然,您仍然可以使用全名来代替$简写方式的jQuery

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<script src="Css/jquery-2.1.4.js"></script>
</head>
<body>
<script>
$.noConflict();
jQuery(document).ready(function () {
jQuery("button").click(function () {
alert("Hello jQuery");
})
})
</script>
<button>click</button>
</body>
</html>

 

您也可以创建自己的简写,noConflict()可返回对jQuery的引用,把它存入到一个变量中,然后再使用,如:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<script src="Css/jquery-2.1.4.js"></script>
</head>
<body>
<script>
var jq= $.noConflict();
jq(document).ready(function () {
jq("button").click(function () {
alert("Hello jQuery");
})
})
</script>
<button>click</button>
</body>
</html>

 

 

如果你的 jQuery 代码块使用 $ 简写,并且您不愿意改变这个快捷方式,那么您可以把 $ 符号作为变量传递给 ready 方法。这样就可以在函数内使用 $ 符号了 - 而在函数外,依旧不得不使用 "jQuery":

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<script src="Css/jquery-2.1.4.js"></script>
</head>
<body>
<script>
$.noConflict();
jQuery(document).ready(function ($) {
$("button").click(function () {
alert("Hello jQuery");
})
})
</script>
<button>click</button>
</body>
</html>

 

posted @ 2015-11-20 21:10  melao2006  阅读(133)  评论(0编辑  收藏  举报