jQuery无冲突处理方案
有一些特殊情况,jQuery可能会与其他的类库同时存在,比如zepto(通常是在某些人犯迷糊的时候)。
在这个时候“$”这个命名空间会出现冲突(或覆盖)。
简单的做法我们可以用“jQuery”或“Zepto”来替代“$”,并在代码中建立属于相关类库的作用域即可,作为命名空间来避免冲突。
那么有没有其他的办法呢。
jQuery 核心 - noConflict() 方法
在jquery里面有一个这样的方法可以改变jQuery的命名空间。
在《JavaScript框架设计》的第一章中就两次提到了这个方案。
我这里cv一下jquery的源代码供参考
//jquery1.2 var _jQuery = window.jQuery , _$ = window.$; jQuery.extend({ noConflict: function(deep){ window.$ = _$; if(deep) window.jQuery = _jQuery return jQuery; } })
要注意的是该方法只对单文件的类库框架有用。
如何对动态加载方式引入的文件解决冲突问题之后再做讨论,不在这里赘述。