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 相关文章推荐
js png图片(有含有透明)在IE6中为什么不透明了
Feb 07 Javascript
jquery实现div阴影效果示例代码
Sep 16 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
Feb 11 Javascript
教你用jquery实现iframe自适应高度
Jun 11 Javascript
使用focus方法让光标默认停留在INPUT框
Jul 29 Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 Javascript
boostrapTable的refresh和refreshOptions区别浅析
Jan 22 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
Feb 08 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
layui use 定义js外部引用函数的方法
Sep 26 Javascript
Vue学习之组件用法实例详解
Jan 06 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
关于document.cookie的使用javascript
2008/04/11 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
Javascript的&amp;&amp;和||的另类用法
2014/07/23 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
基于node实现websocket协议
2016/04/25 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
vue debug 二种方法
2018/09/16 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
工厂总经理岗位职责
2014/02/07 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
高中班主任评语大全
2014/04/25 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
2016党员党课心得体会
2016/01/07 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
Python实现天气查询软件
2021/06/07 Python
压缩Redis里的字符串大对象操作
2021/06/23 Redis