2012-01-21 6 views
2

のメソッドを呼び出す:私はこのようなjqueryのウィジェット持つ拡張jqueryのウィジェット

$.widget("ui.MyWidget", { 
       options: {    
      Value1: 10, 
      Value1: 20, 
     }, 
// and other methods like _create,... 
}); 

をそして、私はこのようにそれを拡張しています:

$.widget("ui.MyExtWidget", $.extend({ 
      options: { 
      Value3: 20, 
     }}, $.ui.MyWidget.prototype, { 
     myNewMethod: function(){ 
      alert(this.options.Value1+this.options.Value3); 
     } 
} 

私は私の中で「myNewMethod」を呼び出す必要がありますhtml。

私のhtmlコードは次のようである:

$("#Div1").MyExtWidget(); 
$("#Div1").MyExtWidget("myNewMethod"); 

がTimeSpanHeaderのメソッドを呼び出すことはできません上記のコードを使用しながら、私はこのような例外を取得しています初期化の前に、メソッド 'myNewMethod'を呼び出そうとしました

"myNewMethod"メソッドを呼び出す方法は何ですか?

答えて

1

ウィジェットの工場が$.widgetコンストラクタで既存のウィジェットから拡張する方法を提供します:

$.widget("ui.MyExtWidget", $.ui.MyWidget, { 
    options: { 
     alertText: '' 
    }, 
    myNewMethod: function() { 
     alert('Value1 = ' + this.options.Value1); 
     alert('alertText = ' + this.options.alertText); 
    } 
}); 

注:コンストラクタは、同様のオプションを拡張するの世話をします。これは、jQuery UIライブラリ自体で使用されるメソッドです。たとえば、ウィジェットui.mouseにはオプションがあり、他の多くのウィジェットはそれを継承し、独自の追加オプションをui.mouseのものと一緒に持っています。ウィジェット工場wiki postから

DEMO


: - jQuery.widget - 2つのまたは3つの引数を受け入れ

ウィジェットの工場は、世界的なjQueryオブジェクト上の簡単な関数であります。

jQuery.widget( "namespace.widgetname"、/*オプション - 既存のウィジェットプロトタイプになる//からリテラルオブジェクトを継承するウィジェットのプロトタイプ*/{...})。

2番目(オプション)の引数は、から継承するウィジェットのプロトタイプです。 たとえば、jQueryのUIには、マウスのプラグインがあり、このプラグインの残りの部分には インタラクションプラグインが基づいています。これを実現するには、draluable、 などがマウスプラグインから継承されます。 jQuery.widget( "ui.draggable"、$ .ui.mouse、{...}); がこの引数を指定しない場合、ウィジェットは "base ウィジェット"、jQuery.Widgetから継承します(小文字の "w" jQuery.widgetと大文字の "W" jQuery.Widgetの違いに注意してください)。

+0

返信ありがとうございます。この場合、ベースウィジェットのオプションのみに新しいオプションを追加することはできません。 –

+0

もちろん、あなたは私にアンワサとフィドルをあなたに見せるように更新しました。これは、jQuery UIライブラリのウィジェットで使用される正確なメソッドです。 –

+0

ありがとう、その正常に動作します。 –

関連する問題