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

时间:2012-12-14 21:27:12

标签: javascript jquery zepto

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

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

Zepto插件:

;(function($){
  $.extend($.fn, {
    foo: function(){ 
    }
  })
})(Zepto)

jQuery插件:

(function( $ ) {
  $.fn.myPlugin = function() {
  };
})( jQuery );

2 个答案:

答案 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}};

API参考:http://api.jquery.com/jQuery.noConflict/