things”だそうです。いう訳で、jQueryプラグインのメソッド名が他のプラグインと衝突するのを回避するための設計方法を列挙してみた。今のところ、一番下の方法が自分的にはしっくり来ている。2011年はsub()方式がおすすめです。jquery.myplugの基本形。基本的に$.fn.extend()は使わない方針。}})(jQuery);複数メソッドを提供したい。this;}})(jQuery);上記はどこでも推奨していない悪い例。myplugというプラグインが$.fn配下にmyplugMethod1とmyplugMethod2という2つの名前を定義しているので、プラグイン間で衝突する可能性がある。{}})(jQuery);上記の例では、複数のメソッドを含む構造体を$.fn.myplugという名前で定義している。プラグイン間の衝突は回避できたけど、メソッド内でどうjQueryオブジェクトを取得するのか分からない。};})(jQuery);thisの代わりにjqにjQueryオブジェクトを格納。インターフェースがイマイチだけど、まあまあ有り得る形。};})(jQuery);jQuery公式ドキュメントでも推奨しているらしい方式。メソッド内ではthisがjQueryオブジェクトだし、開発は今までどおりで分かりやすい。メソッド名が文字列っていうのは何となく抵抗がある。}})(jQuery);プラグインひとつにつき、インナークラスを一つ定義する。インターフェースは、DOMに紐づいたmyplugインスタンスを引き回すのが特徴で、メソッドチェーンもできる。myplugインスタンスは$('#target').data('myplug')などとすれば後から取得できる。広く普及している、DOMを引き回すような方式とは異なるので混乱の元かも知れないけど、今のところ一番無難な方式の気がする。ここまで来ると、プラグイン間で継承できるようなフレームワーク作ってみようとか、夢が広がる。func)ってやっておいたほうが身のためです。PM自分も昔プラグインの定義方法についてはいろいろ模索してました。UIもこれ系ですが、メソッド名が文字列っていうのが抵抗ありますよね・・・そんな訳で、自分も一番下の方法をも少し拡張した感じで使ってます。した時のみインナークラスのインスタンスを返すようにしてます。PMブログ拝見しました。先に読んでいれば色々苦労しなかったかもしれない・・。後で詳しく読ませて頂きます。コメントをキャンセルメールアドレスが公開されることはありません。