对jquery的conflict方法的解读
源码:
noConflict: function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; },
引入jQuery类库后,闭包外面的window.$与window.jQuery都储存着一个函数,
它是用来生成jQuery对象或在domReady后执行里面的函数的。回顾我上一篇文章,那里有写什么时候给它们进行赋值。在还没有把function赋给它们时,_jQuery与_$已经被赋值了,因此它们俩的值一定必然是undefined。
因此这种放弃对$和jQuery的控制权的技术很简单,就是用undefined把window.$里面的jQuery系的函数清除掉,这样别的框架就可以使用它们了。
在window.$ = _$。相当于是window.$ = undefined。
如果连你的程序也有一个叫jQuery的东西呢,jQuery可以大方地连这个也让渡出去,
这时就要为noConflict添加一个布尔值,为true。但我们必须用一个东西要接纳jQuery对象与jQuery的入口函数,
闭包里面的东西除非被window等宿主对象引用,否则就是不可见的,因此我们把闭包里面的jQuery return出去,外面用一个变量接纳就是。posted on 2012-08-09 13:56 TonyCoolZhu 阅读(768) 评论(0) 编辑 收藏 举报