zoukankan      html  css  js  c++  java
  • 关于jquery.noConflict()的学习记录

    今天无意中看到了jquery.noConfict()的实现方法

    代码如下:

    var
    // Map over jQuery in case of overwrite
    _jQuery = window.jQuery,
    
    // Map over the $ in case of overwrite
    _$ = window.$;
    
    jQuery.noConflict = function( deep ) {
    if ( window.$ === jQuery ) {
    window.$ = _$;
    }
    
    if ( deep && window.jQuery === jQuery ) {
    window.jQuery = _jQuery;
    }
    
    return jQuery;
    };
    

     刚开始,我一直没看懂它是怎么释放$和jQuery的。经过和别人的讨论,终于理解清楚了,特此记录下,供大家参考

    1,首先,它的使用场景是我们在一个已经有其他框架的项目中再引入jquery.为了使我们的引入不影响前面的功能,所以我们要释放

    2,只有在jquery在其他库后面引入才有能有效释放。如果jquery最先引入。则执行该方法,没有意义!

    下面,我对上面的代码坐个说明:

    在加载进该库时,首先

    _jQuery = window.jQuery,   _$ = window.$;
    这里的 window.$和window.jQuery是指向指向之前全局环境的。(即你可以认为此时还没有加载jquery库)。
    jQuery.noConflict=function(){};这里定义了一个函数,当你在执行时,此时jquery肯定以后完成了加载。所以此时的
    window.$ 和 window.jQuery 是真正的指向了jquery库的这个jquery全局对象。
    通过执行函数。我们用之前的全局对象缓存来覆盖这两个变量。达到释放的目的。
  • 相关阅读:
    网站上线的过程
    PHP的四种基本算法
    YII框架第三方微博登录
    《正三角》《倒三角》
    PHP实现四种基本排序
    php实现快速排序
    iwebshop 简介
    收集的伪静态中经常使用的一些参数
    我与AI的相识
    phpstudy下的nginx服务器显示目录
  • 原文地址:https://www.cnblogs.com/wenber/p/3967253.html
Copyright © 2011-2022 走看看