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 相关文章推荐
javascript开发随笔一 preventDefault的必要
Nov 25 Javascript
解析window.open的使用方法总结
Jun 19 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
Jun 07 Javascript
javascript设计模式之中介者模式Mediator
Dec 30 Javascript
setinterval()与clearInterval()JS函数的调用方法
Jan 21 Javascript
javascript实现日期按月份加减
May 15 Javascript
jQuery实现的简单悬浮层功能完整实例
Jan 23 Javascript
javaScript字符串工具类StringUtils详解
Dec 08 Javascript
vue实现选项卡及选项卡切换效果
Apr 24 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
Aug 07 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 Javascript
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
让人期待的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源代码
2006/10/09 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
Yii2 rbac权限控制之rule教程详解
2016/06/23 PHP
PHP PDOStatement::columnCount讲解
2019/01/30 PHP
浅谈PHP封装CURL
2019/03/06 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
JS中的事件委托实例浅析
2018/03/22 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
js实现移动端图片滑块验证功能
2020/09/29 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
python3 读取Excel表格中的数据
2018/10/16 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
JSF如何进行表格处理及取值
2012/08/06 面试题
一套VC试题
2015/01/23 面试题
GC是什么?为什么要有GC?
2013/12/08 面试题
大学四年学习的自我评价分享
2013/12/09 职场文书
大学生军训感想
2014/02/16 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android