2011-07-11 6 views
0

jquery-uiに関する知識を増やしたいので、ソースコードを見ていきます。ui-dialog、getTitleIdメソッドがプロトタイプリテラルにない、なぜですか?

私はjquery-ui 1.19m5で動作します。

私はウィジェットの工場への呼び出し後に参照UI-ダイアログの1.19m5ソースコードを見て:

$.extend($.ui.dialog, { 
... 
    getTitleId: function($el) { 
... 

私はこのことを理解していません。なぜ、getTitleIDメソッドをプロトタイプのリテラル(ウィジェットファクトリコールの3番目のパラメータ)に直接入れないのですか?

答えて

0

jQuery UIは、適切なウィジェットAPIからメソッドをトリガーするように設計されています。したがって、メソッドを呼び出すには$('.selector').widgetName('methodName',arguments);

これにより、プラグイン開発者は簡単に名前空間の衝突を避けるだけでなく、プライベート/パブリック関数を追加することができます。これらの3つのプラグインは、有効/無効機能などのいくつかのメソッド名を共有しています。これらのプラグインは、サイズ変更可能、ドラッグ可能、ドロップ可能なオブジェクトを1つに持つことができます。

この例では、 'enable'のプロトタイプに追加した場合、最後に追加したウィジェットの機能を有効/無効にすることができ、すべてのウィジェットタイプを制御することができなくなります。 APIを使用すると、変更するウィジェットを特に選択できます。 Ex。 $('.selector').draggable('disable');はドラッグ機能を無効にし、サイズ変更可能なウィジェットと完全削除可能なウィジェットを完全に機能させます。多くのウィジェットは、同じまたは類似のメソッド、イベント、および/またはオプション名を持っていることに注意してください。

ロングとショートは、名前空間用です。これはまた、プロトタイプに直接追加された他のメソッド、オプション、データなどを心配することなく、自分のウィジェットを作成するときにトップレベルのウィジェット名を心配する必要があるため、開発者にとってはより簡単です。

おそらく、2番目のレイヤーの下のプロトタイプに追加することもできますが、これはいつでもあなた(ユーザー)を節約するものではなく、おそらくコードではっきりと見えません。名前空間を指定するために各関数に接頭辞を追加することもできますが、それはコードを混乱させ、独自のウィジェットを作成する開発者にとってより多くのチェックと潜在的な障害点を作り出します。

関連する問題