jQuery中 $ 符号的冲突问题及解决方案
2018-03-13 10:48
197 查看
在jQuery中,$是jQuery的别名,为了书写方便,我们更习惯用$('#id')这一类的方式来书写代码。当同一页面引用了jQuery多个版本或者jQuery与某些其他js库产生冲突,控制台就会报错。同一个页面多个版本冲突解决办法
你可能会问,为什么在一个页面上会引用多个版本的jQuery,只引用一个不就好了吗?
答案是:不行。一般要用到两个(或以上)版本的jQuery库的原因是:现有的网站已经用了旧版本的jQuery以及相关插件,直接将jQuery升级到新版本会导致这些基于旧版本jQuery的插件不能工作,除非你能把这些插件全部升级,或者等各个插件的作者发布支持新版本jQuery的插件版本。 解决办法:使用jQuery.noConflict([extreme])方法。
比如我引用的是jquery-3.3.1.js和jquery-1.4.4.js。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>demo</title>
<script src="https://cdn.bootcss.com/jquery/1.4.4/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
console.log($.fn.jquery); //'3.3.1'
var $jq = jQuery.noConflict(true); //自定义别名
console.log($.fn.jquery); //'1.4.4'
console.log($jq.fn.jquery); //'3.3.1'
</script>
</head>
<body>
</body>
</html>可以看到jQuery.noConflict将变量 $ 的控制权让渡给了1.4.4版本的jQuery库。而如果需要使用3.3.1的版本则需用 $jq代替。
你可能会问,为什么在一个页面上会引用多个版本的jQuery,只引用一个不就好了吗?
答案是:不行。一般要用到两个(或以上)版本的jQuery库的原因是:现有的网站已经用了旧版本的jQuery以及相关插件,直接将jQuery升级到新版本会导致这些基于旧版本jQuery的插件不能工作,除非你能把这些插件全部升级,或者等各个插件的作者发布支持新版本jQuery的插件版本。 解决办法:使用jQuery.noConflict([extreme])方法。
比如我引用的是jquery-3.3.1.js和jquery-1.4.4.js。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>demo</title>
<script src="https://cdn.bootcss.com/jquery/1.4.4/jquery.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
console.log($.fn.jquery); //'3.3.1'
var $jq = jQuery.noConflict(true); //自定义别名
console.log($.fn.jquery); //'1.4.4'
console.log($jq.fn.jquery); //'3.3.1'
</script>
</head>
<body>
</body>
</html>可以看到jQuery.noConflict将变量 $ 的控制权让渡给了1.4.4版本的jQuery库。而如果需要使用3.3.1的版本则需用 $jq代替。
相关文章推荐
- jQuery中 $ 符号的冲突问题及解决方案
- jQuery中 $ 符号的冲突问题
- 处理jquery 与其他js $符号冲突问题
- 完美解决jQuery符号$与其他javascript 库、框架冲突的问题
- jQuery中$符号冲突问题
- 完美解决jQuery符号$与其他javascript 库、框架冲突的问题
- 解决jquery中美元符号命名冲突问题
- jquery的$符号冲突问题
- jquery中美元符号命名冲突问题解决
- 用闭包解决jQuery和其它框架的$符号冲突的问题
- 使用jquery时$符号冲突问题解决方案
- jQuery中$符号冲突问题 (转载)
- 解决 jQuery 符号 $ 与其他 javascript 库、框架冲突的问题
- 解决jquery中美元符号命名冲突问题
- 关于引入两个jquery.js文件引起$符号命名冲突的问题
- 解决自定义$(id)的方法与jquery选择器冲突的问题
- 关于ListView和ScrollView冲突问题的解决方案
- SSH jar冲突问题 解决方案
- 关于各种无法解析的外部符号问题的相应解决方案
- 解决Jquery冲突的问题