Jquery命名冲突解决的五种方案分享


Posted in Javascript onMarch 16, 2012

因为许多 JavaScript 库使用 $ 作为函数或变量名,jquery也一样。其实$只是jquery的一个别名而已,假如我们需要使用 jquery 之外的另一 js 库,我们可以通过调用 $.noConflict() 向该库返回控制权。下面是收集到解决这一问题的五种方案,总有一种你会用得上的。
例一:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>冲突解决1</title> 
<!-- 引入 prototype --> 
<script src="prototype-1.6.0.3.js" type="text/javascript"></script> 
<!-- 引入 jQuery --> 
<script src="http://www.cnblogs.com/scripts/jquery-1.3.1.js" type="text/javascript"></script> 
</head> 
<body> 
<p id="pp">test---prototype</p> 
<p >test---jQuery</p> 
<script type="text/javascript"> 
jQuery.noConflict(); //将变量$的控制权让渡给prototype.js 
jQuery(function(){ //使用jQuery 
jQuery("p").click(function(){ 
alert( jQuery(this).text() ); 
}); 
}); 
$("pp").style.display = 'none'; //使用prototype 
</script> 
</body> 
</html>

例二:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>冲突解决2</title> 
<!-- 引入 prototype --> 
<script src="prototype-1.6.0.3.js" type="text/javascript"></script> 
<!-- 引入 jQuery --> 
<script src="http://www.cnblogs.com/scripts/jquery-1.3.1.js" type="text/javascript"></script> 
</head> 
<body> 
<p id="pp">test---prototype</p> 
<p >test---jQuery</p> 
<script type="text/javascript"> 
var $j = jQuery.noConflict(); //自定义一个比较短快捷方式 
$j(function(){ //使用jQuery 
$j("p").click(function(){ 
alert( $j(this).text() ); 
}); 
}); 
$("pp").style.display = 'none'; //使用prototype 
</script> 
</body> 
</html>

例三:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>冲突解决3</title> 
<!-- 引入 prototype --> 
<script src="prototype-1.6.0.3.js" type="text/javascript"></script> 
<!-- 引入 jQuery --> 
<script src="http://www.cnblogs.com/scripts/jquery-1.3.1.js" type="text/javascript"></script> 
</head> 
<body> 
<p id="pp">test---prototype</p> 
<p >test---jQuery</p> 
<script type="text/javascript"> 
jQuery.noConflict(); //将变量$的控制权让渡给prototype.js 
jQuery(function($){ //使用jQuery 
$("p").click(function(){ //继续使用 $ 方法 
alert( $(this).text() ); 
}); 
}); 
$("pp").style.display = 'none'; //使用prototype 
</script> 
</body> 
</html>

例四:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>冲突解决4</title> 
<!-- 引入 prototype --> 
<script src="prototype-1.6.0.3.js" type="text/javascript"></script> 
<!-- 引入 jQuery --> 
<script src="http://www.cnblogs.com/scripts/jquery-1.3.1.js" type="text/javascript"></script> 
</head> 
<body> 
<p id="pp">test---prototype</p> 
<p >test---jQuery</p> 
<script type="text/javascript"> 
jQuery.noConflict(); //将变量$的控制权让渡给prototype.js 
(function($){ //定义匿名函数并设置形参为$ 
$(function(){ //匿名函数内部的$均为jQuery 
$("p").click(function(){ //继续使用 $ 方法 
alert($(this).text()); 
}); 
}); 
})(jQuery); //执行匿名函数且传递实参jQuery 
$("pp").style.display = 'none'; //使用prototype 
</script> 
</body> 
</html>

例五:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>冲突解决5</title> 
<!--先导入jQuery --> 
<script src="http://www.cnblogs.com/scripts/jquery-1.3.1.js" type="text/javascript"></script> 
<!--后导入其他库 --> 
<script src="prototype-1.6.0.3.js" type="text/javascript"></script> 
</head> 
<body> 
<p id="pp">test---prototype</p> 
<p >test---jQuery</p> 
<script type="text/javascript"> 
jQuery(function(){ //直接使用 jQuery ,没有必要调用"jQuery.noConflict()"函数。 
jQuery("p").click(function(){ 
alert( jQuery(this).text() ); 
}); 
}); 
$("pp").style.display = 'none'; //使用prototype 
</script> 
</body> 
</html>

上述实例打包下载
Javascript 相关文章推荐
this[] 指的是什么内容 讨论
Mar 24 Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 Javascript
详解JavaScript的另类写法
Apr 11 Javascript
第四章之BootStrap表单与图片
Apr 25 Javascript
基于jQuery实现简单人工智能聊天室
Feb 10 Javascript
jQuery插件echarts去掉垂直网格线用法示例
Mar 03 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
May 11 Javascript
vue引入swiper插件的使用实例
Jul 19 Javascript
Javascript的this详解
Mar 23 Javascript
js实现删除li标签一行内容
Apr 16 Javascript
element-ui如何防止重复提交的方法步骤
Dec 09 Javascript
让人期待的2011年度最佳 jQuery 插件分享
Mar 16 #Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 #Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
Mar 16 #Javascript
jquery $.ajax相关用法分享
Mar 16 #Javascript
灵活应用js调试技巧解决样式问题的步骤分享
Mar 15 #Javascript
3款实用的在线JS代码工具(国外)
Mar 15 #Javascript
Extjs中使用extend(js继承) 的代码
Mar 15 #Javascript
You might like
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
JS表格的动态操作完整示例
2020/01/13 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
详解Python中的Descriptor描述符类
2016/06/14 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
python logging 日志的级别调整方式
2020/02/21 Python
基于python 凸包问题的解决
2020/04/16 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
Python如何读取、写入JSON数据
2020/07/28 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
美国校园市场:OCM
2017/06/08 全球购物
小学教师岗位职责
2013/11/25 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
同意转租证明
2015/06/24 职场文书
升学宴祝酒词
2015/08/11 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电