如何在页面上同时使用jQuery和其他框架?
jQuery和其他JavaScript框架
正如您已经了解到,jQuery使用$符号作为jQuery的简写.
如果其他JavaScript框架也使用$符号作为简写怎么办?
其他一些JavaScript框架包括:MooTools,Backbone,Sammy,Cappuccino,KnocKout,JavaScript MVC,Google Web Toolkit,Google Closure,Ember,Batman以及ExtJS.
其中某些框架也使用$符号作为简写就像jQuery,如果您在用的两种不同的框架正在使用相同的简写符号,有可能导致脚本停止运行.
jQuery的团队开绿道这个问题,并实现了noConflict()方法.
jQuery noConflict()方法
noConflict()会释放$标识符的控制,这样其他脚本就可以使用它了.
实例
可以通过全名替代简写的方式来使用jQuery:
1 $.noConflict();
2 jQuery(document).ready(function(){
3 jQuery('button').click(function(){
4 jQuery('p').text('jQuery 仍在运行!');
5 });
6 });
实例
也可以创建自己的简写.noConflict()可返回对jQuery的引用.你可以把它存入变量,以供稍后使用.
1 var jq=$.noConflict();
2 jq(document).ready(function(){
3 jq("button").click(function(){
4 jq("p").text("jQuery 仍在运行!");
5 });
6 });
实例
如果你的jQuery代码块使用$简写,并且你不愿意改变这个快捷方式.那么你可以把$符号作为变量传递给ready方法.这样就可以在函数内部使用$符号,而在函数外,依旧不得不使用jQuery.
1 $.noConflict();
2 jQuery(document).ready(function($){
3 $("button").click(function(){
4 $("p").text("jQuery 仍在运行!");
5 });
6 });