1

我正在研究带有 jQ​​uery 后备的Zepto(如 Zepto 的网站上所见),看看它是否适用于即将到来的项目。

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

Zepto插件:

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

jQuery插件:

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

2 回答 2

5

编辑:更新的答案。

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

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

;(function($){
    $.extend($.fn, {
        foo: function(){ 
        }
    })
})(window.Zepto || window.jQuery)
于 2012-12-16T16:37:34.687 回答
1

用于jQuery.noConflict()避免与另一个使用$别名的库发生冲突。这种方式$永远是 Zepto,你可以为 jQuery 使用任何其他你想要的别名,或者只使用jQuery对象本身

如果您将其作为;的参数传递,您仍然可以$在包裹的 j​​Query 代码中使用它。document.readydocument.ready

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

于 2012-12-16T02:34:26.250 回答