我正在研究Zepto的jQuery后备(如Zepto的网站上所见),看看它是否适用于即将推出的项目。
我希望使用$ .extend构建一个自定义插件,但在Zepto的例子中注意到它们将jept作为$
变量传递给Zepto。是否有办法传入任何加载的库?
Zepto插件:
;(function($){
$.extend($.fn, {
foo: function(){
}
})
})(Zepto)
jQuery插件:
(function( $ ) {
$.fn.myPlugin = function() {
};
})( jQuery );
答案 0 :(得分:5)
编辑:更新了答案。
我最初的想法是简单地将$
作为参数传递,但是如果要在各个项目中分发插件,则不能提供很好的可移植性。
相反,您应该使用OR
运算符来检测Zepto
是否已加载,如果不加载,则回退到jQuery
。
;(function($){
$.extend($.fn, {
foo: function(){
}
})
})(window.Zepto || window.jQuery)
答案 1 :(得分:1)
使用jQuery.noConflict()
避免与使用$
别名的其他库发生冲突。那样$
永远是Zepto,你可以使用你想要的任何其他别名,或者只使用jQuery
对象本身
如果将$
作为参数传递给document.ready
,您仍然可以在document.ready
中包含的jQuery代码中使用{{1}};