首页 > 代码库 > 关于jquery.noConflict()的学习记录
关于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全局对象。
通过执行函数。我们用之前的全局对象缓存来覆盖这两个变量。达到释放的目的。
关于jquery.noConflict()的学习记录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。