JQuery的$和其它JS发生冲突的快速解决方法


Posted in Javascript onJanuary 24, 2014

众所周知,jQuery是目前最流行的JS封装包,简化了很多复杂的JS程序,JQuery讲浏览器DOM树定义为$,通过$来获取各个子节点。

然后,JS插件并非只有JQuery,还有prototype.js 等其它比较好的插件。它们也使用$。所以有时候同时使用这个两个JS插件的时候,就会出现$的使用权冲突问题。现在我们来看看如何解决这个冲突问题。请看下文:

我们都知道JQuery有一个函数,jquery.noConflict() 它的作用是讲$的控制权转让出去。然后我们可以通过jQuery代替$来获取dom节点

举例:

方法一:

<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>

方法二:

我们可以通过noConflict()函数来定义一个快捷方式用来获取dom节点

<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>

还有其它的方法,都给大家列举出来,同理都可以看明白了吧,呵呵。

方法三:

<script type="text/javascript">
jQuery.noConflict(); //将变量$的控制权让渡给prototype.js
jQuery(function($){ //使用jQuery
$("p").click(function(){ //继续使用 $ 方法
alert( $(this).text() );
});
});  
$("pp").style.display = 'none'; //使用prototype
</script>

方法四:
<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>
Javascript 相关文章推荐
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
Feb 14 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
Dec 15 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
May 05 Javascript
浅析javascript的间隔调用和延时调用
Nov 12 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
Dec 18 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
Feb 28 Javascript
使用Raygun来自动追踪AngularJS中的异常
Jun 23 Javascript
详解Javascript中prototype属性(推荐)
Sep 03 Javascript
js鼠标移动时禁止选中文字
Feb 19 Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
基于vue2实现左滑删除功能
Nov 28 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 Javascript
js判断60秒以及倒计时示例代码
Jan 24 #Javascript
innerText 使用示例
Jan 23 #Javascript
登陆成功后自动计算秒数执行跳转
Jan 23 #Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 #Javascript
html dom节点操作(获取/修改/添加或删除)
Jan 23 #Javascript
解决jquery插件冲突的问题
Jan 23 #Javascript
js实现日期级联效果
Jan 23 #Javascript
You might like
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
JS的数组迭代方法
2015/02/05 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
实例详解vue中的$root和$parent
2019/04/29 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
Python中的yield浅析
2014/06/16 Python
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
发现两个有趣的CSS3动画效果
2013/08/14 HTML / CSS
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
超市促销实习自我鉴定
2013/09/23 职场文书
服务员自我评价
2014/01/25 职场文书
制作部班长职位说明书
2014/02/26 职场文书
环保建议书100字
2014/05/14 职场文书
面试感谢信范文
2015/01/22 职场文书
Python闭包的定义和使用方法
2022/04/11 Python
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL