使用jQuery回退为Zepto编写自定义插件

Pau*_*ham 1 javascript jquery zepto

我正在研究Zepto的jQuery后备(在Zepto的网站上看到),看看它是否适用于即将推出的项目.

我希望使用$ .extend构建一个自定义插件,但在Zepto的例子中注意到它们传递Zepto作为$变量和jQuery一样.是否有办法传入任何加载的库?

Zepto插件:

;(function($){
  $.extend($.fn, {
    foo: function(){ 
    }
  })
})(Zepto)
Run Code Online (Sandbox Code Playgroud)

jQuery插件:

(function( $ ) {
  $.fn.myPlugin = function() {
  };
})( jQuery );
Run Code Online (Sandbox Code Playgroud)

amu*_*ill 5

编辑:更新的答案.

我最初的想法是简单地传递$作为参数,这是有效的,但如果要在各种项目中分发插件,则不提供很好的可移植性.

相反,您应该使用OR运算符来检测是否Zepto已加载,jQuery如果不加载则回退.

;(function($){
    $.extend($.fn, {
        foo: function(){ 
        }
    })
})(window.Zepto || window.jQuery)
Run Code Online (Sandbox Code Playgroud)