jQuery源码学习笔记(05)

来源:互联网 发布:属性数据分析引论 编辑:程序博客网 时间:2024/06/08 14:10


jQuery多库共存处理




多库共存换句话说可以叫无冲突处理

总的来说会有2种情况会遇到:

   1、jQuery作为命名空间,不免会与别的库框架或者插件相冲突。

   2、jQuery版本更新太快,插件跟不上,导致不同版本对插件的支持度不一样。

出于以上的原因,jQuery给出了解决方案–– noConflict函数。

    引入jQuery运行这个noConflict函数将变量jQuery对象发生冲突。
在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到("aaron")jQuery("aaron")的控制权已经让出去了。

使用DEMO:

jQuery.noConflict();// 使用 jQueryjQuery("aaron").show();// 使用其他库的 $()$("aaron").style.display = ‘block’;

   这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前使用。当然也应当在其他冲突的库被使用之前,除非jQuery是最后一个导入的。

由于比较简单,我们直接上代码解说:

Var _jQuery = window.jQuery,    _$ = window.$;jQuery.noConflict = function( deep ) {    if ( window.$ === jQuery ) {        window.$ = _$;    }if ( deep && window.jQuery === jQuery ) {        window.jQuery = _jQuery;    }    return jQuery;};

    如果我们需要同时使用jQuery和其他JavaScript库,我们可以使用 .noConflict()的控制权交给其他库。旧引用的jQuery;noConflict()swap空间是不是被jQuery接管了,如果是则让出控制权给之前的_deeptruejQuerynoConflict大家都“觊觎已久”。

原创粉丝点击