3

「公式」ドキュメントhttp://docs.jquery.com/Plugins/Authoring#Namespacingには、以下に示すように、メソッドをjQueryプラグインに追加する必要があると記載されています。このデザインパターンが頻繁に実装されるのを見たことがありません。他のプラグインがvarメソッドを使用している場合、競合が発生する可能性があります。これは本当に好ましい方法ですか、それとも別の方法で行う必要がありますか?

(function( $ ){

 var methods = {
  method1: function( options ) {},
  method2: function( ) {}
 };

 $.fn.tooltip = function( method ) {
  if ( methods[method] ) {
   return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
  } else if ( typeof method === 'object' || ! method ) {
   return methods.init.apply( this, arguments );
  }
 };

})( jQuery );
4

1 に答える 1

0

メソッドをパブリックにアクセス可能にしたい場合は、はい、それが推奨される方法です。プラグインが非常に複雑な場合に可能であり、推奨されることもあるもう 1 つのオプションは、メソッド ハッシュを使用するだけでなく、完全に構築されたオブジェクトを実際に作成することです。各インスタンスのルート要素を使用して状態を管理できるため、これを本当に行う必要があるかどうかはわかりません.data()が、そのパターンは以前に見られ、高く評価されていました。

<rant>さらに、私は最近、多くのプラグインで悪化しました... オープンソースにする場合は、少なくとも、destroy行ったすべてのバインドを解除する方法を含めるようにしてください.</rant>

于 2012-10-24T13:02:31.703 に答える