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操作cookie_获取与修改代码
May 21 Javascript
jQuery学习笔记[1] jQuery中的DOM操作
Dec 03 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
Mar 18 Javascript
jquery 中ajax执行的优先级
Jun 22 Javascript
原生javascript实现的ajax异步封装功能示例
Nov 03 Javascript
React学习之事件绑定的几种方法对比
Sep 24 Javascript
WebSocket的通信过程与实现方法详解
Apr 29 Javascript
node.js使用express框架进行文件上传详解
Mar 03 Javascript
vue+element实现打印页面功能
May 20 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
May 29 Javascript
使用vue实现多规格选择实例(SKU)
Aug 23 Javascript
JavaScript中layim之整合右键菜单的示例代码
Feb 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
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
python实现BackPropagation算法
2017/12/14 Python
Python3爬楼梯算法示例
2019/03/04 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
this关键字的作用
2016/01/30 面试题
找工作最新求职信
2013/12/22 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
装饰资料员岗位职责
2013/12/30 职场文书
装修五一活动策划案
2014/01/23 职场文书
教师求职自荐书
2014/06/14 职场文书
公司委托书怎么写
2014/08/02 职场文书
租房协议书范例
2014/10/14 职场文书
党员活动总结
2015/02/04 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript