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 相关文章推荐
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 Javascript
JS网页播放声音实现代码兼容各种浏览器
Sep 22 Javascript
javascript eval(func())使用示例
Dec 05 Javascript
js自定义select下拉框美化特效
May 12 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
Dec 23 Javascript
jQuery extend()详解及简单实例
May 06 jQuery
jquery实现图片轮播器
May 23 jQuery
微信小程序实现顶部下拉菜单栏
Nov 04 Javascript
Next.js项目实战踩坑指南(笔记)
Nov 29 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
JsonServer安装及启动过程图解
Feb 28 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 应用程序安全防范技术研究
2009/09/25 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php后退一页表单内容保存实现方法
2012/06/17 PHP
探讨如何把session存入数据库
2013/06/07 PHP
PHP类型约束用法示例
2016/09/28 PHP
有关Promises异步问题详解
2015/11/13 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
用Python进行行为驱动开发的入门教程
2015/04/23 Python
详解Python中的Cookie模块使用
2015/07/06 Python
python实现备份目录的方法
2015/08/03 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
数百万免费的图形资源:Freepik
2020/09/21 全球购物
趣味比赛活动方案
2014/02/15 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
先进事迹材料范文
2014/12/29 职场文书
北京颐和园导游词
2015/01/30 职场文书
2015年林业工作总结
2015/05/14 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python