jQuery源码分析(4) - 如何处理$的命名冲突问题
把以前看的jQuery源码的分析笔记搬到博客上,重温经典,也是为了方便查询。
将源码中的逻辑精简如下:
var _$ = window.$;
var jQuery = function(){};
jQuery.extend({
noConflict: function(deep){
if (window.$ === jQuery) {
window.$ = _$;
}
if (deep && window.jQuery === jQuery){
window.jQuery = _jQuery;
}
return jQuery;
}
});
加载jquery和另外一个也是用$的库之后,
var $j = jQuery.noConflict(); // 定义一个新的名称 $j(function(){});
如果想在jQuery里继续使用$, 只需要将$作为参数传入,
jQuery.noConflict();
jQuery(function($){
$('div').click(function(){ });
});