Home > Web Front-end > JS Tutorial > How to solve the $ symbol conflict in jquery

How to solve the $ symbol conflict in jquery

coldplay.xixi
Release: 2020-11-24 12:00:05
Original
2766 people have browsed it

jquery中的$符号冲突的解决方法:使用【jQuery.noConflict([extreme])】方法解决,代码为【var $jq = jQuery.noConflict(true);console.log($.fn.jquery)】。

How to solve the $ symbol conflict in jquery

  • 该方法适用于所有品牌电脑

jquery中的$符号冲突的解决方法:

使用jQuery.noConflict([extreme])方法。

<script src="jquery-1.5.0.js"></script>
<script src="jquery-1.11.0.js"></script>
<script>
console.log($.fn.jquery); //&#39;1.11.0&#39;
var $jq = jQuery.noConflict(true);
console.log($.fn.jquery); //&#39;1.5.0&#39;
</script>
Copy after login

可以看到jQuery.noConflict将变量 $ 的控制权让渡给了1.5.0版本的jQuery库。而要使用1.11.0的版本则要用 $jq() 代替。

但是引入了两个版本的jQuery后,代码很乱,导致别人难以理解甚至误删了一些重要代码怎么办?

改进的方法是:

先直接引用新版的jQuery库。

<script src="jquery-1.11.0.js"></script>
<script src="myJS.js"></script>
Copy after login

把我们写的脚本myJS.js中的主体内容写在立即调用函数里头,引用的是新的版本的jQuery。

//myJS.js
(function() {
//myJS.js的代码,引用的是v1.11.0
})();
Copy after login

再写一个立即调用函数,把旧版本的jQuery代码嵌进去(压缩代码只有几行)。然后在里面写代码,此时变量$所引用的前面嵌进去的jQuery

//myJS.js
(function () {
//...此处省略/jquery1.5.0
//jquery1.5.0的压缩代码
  var $ = jQuery.noConflict(true);
//此处开始写的$()所引用的是jquery1.5.0
})();
Copy after login

Ps:需要检查jQuery的协议是否允许我们把jQuery源码直接嵌入我们自己的JavaScript代码

2、同一页面jQuery和其他js库冲突解决方法

①依然可以使用jQuery.noConflict将变量$的控制权让渡给其他js库。

如果jQuery在其他js库前,不需要使用noConflict。 

<!-- 引入 jquery库 -->
<script src="jquery-1.11.0.js"></script>
<script type="text/javascript">
var $jq = $;
console.log($.fn.jquery); //&#39;1.11.0&#39;
</script>
<!-- 引入 其他库-->
<script type="text/javascript">
$ = {
fn:{
jquery:"otherJS"
}
};
</script>
<script type="text/javascript"> 
console.log($.fn.jquery); //otherJS
console.log($jq.fn.jquery); //&#39;1.11.0&#39;
</script>
Copy after login

如果在其他js库之后,用noConflict让渡。

<!-- 引入 其他库-->
<script type="text/javascript">
$ = {
fn:{
jquery:"otherJS"
}
};
</script>
<!-- 引入 jquery库 -->
<script src="jquery-1.11.0.js"></script>
<script type="text/javascript"> 
console.log($.fn.jquery); //&#39;1.11.0&#39;
var $180 = $.noConflict(); //解除冲突
console.log($.fn.jquery); //otherJS
console.log($jq.fn.jquery); //&#39;1.11.0&#39;
</script>
Copy after login

相关免费学习推荐:JavaScript(视频)

The above is the detailed content of How to solve the $ symbol conflict in jquery. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template