• 技术文章 >web前端 >js教程

    jquery中的$符号冲突怎么解决

    coldplay.xixicoldplay.xixi2020-11-24 12:00:05原创648

    jquery中的$符号冲突的解决方法:使用【jQuery.noConflict([extreme])】方法解决,代码为【var $jq = jQuery.noConflict(true);console.log($.fn.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); //'1.11.0'
    var $jq = jQuery.noConflict(true);
    console.log($.fn.jquery); //'1.5.0'
    </script>

    可以看到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>

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

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

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

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

    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); //'1.11.0'
    </script>
    <!-- 引入 其他库-->
    <script type="text/javascript">
    $ = {
    fn:{
    jquery:"otherJS"
    }
    };
    </script>
    <script type="text/javascript"> 
    console.log($.fn.jquery); //otherJS
    console.log($jq.fn.jquery); //'1.11.0'
    </script>

    如果在其他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); //'1.11.0'
    var $180 = $.noConflict(); //解除冲突
    console.log($.fn.jquery); //otherJS
    console.log($jq.fn.jquery); //'1.11.0'
    </script>

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

    以上就是jquery中的$符号冲突怎么解决的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:jQuery $
    上一篇:怎么判断一个对象是否是jquery对象? 下一篇:不同的jquery版本冲突怎么办
    大前端线上培训班

    相关文章推荐

    • jquery $和$()区别是什么• jquery的$是什么意思• jquery如何用$(this)选择它下面的子元素• jquery $是什么用法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网