1

私は(ZeptoのWebサイトで見られるように)jQueryフォールバックを使用してZeptoを調べ、次のプロジェクトで実行可能かどうかを確認しています。

$ .extendを使用してカスタムプラグインを作成したいと思っていましたが、Zeptoの例では、$jQueryと同様にZeptoを変数として渡すことに気付きました。ロードされているライブラリを渡す方法はありますか?

Zeptoプラグイン:

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

jQueryプラグイン:

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

2 に答える 2

5

Edit: Updated answer.

My original thoughts were to simply pass $ as the parameter, which works, but doesn't offer great portability if the plugin is to be distributed throughout various projects.

Instead you should use the OR operator to detect whether Zepto is loaded, falling back to jQuery if it isn't.

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

エイリアスjQuery.noConflict()を使用する別のライブラリとの衝突を回避するために使用します。$そう$すれば、常にZeptoになり、jQueryに必要な他のエイリアスを使用することも、jQueryオブジェクト自体を使用することもできます。

;の引数として渡すと、$ラップされたjQueryコードで引き続き使用できます。document.readydocument.ready

APIリファレンス:http ://api.jquery.com/jQuery.noConflict/

于 2012-12-16T02:34:26.250 に答える