2016-08-18 22 views
1

ベースウィジェットから別のウィジェットにメソッドを継承しようとしています。 はここに私のサンプルコードですJquery UIウィジェットで継承を実装する方法

マイベースウィジェットは

$(function() { 
    $.widget("UI.baseWidget", { 
     options: { 
      testVal:'' 
     }, 
     _create: function() { 
      alert(this.option.testVal); 
     }, 

    }); 
}); 

であり、他のウィジェットこの基本ウィジェットを呼び出すと

$(function() { 
    $.widget("UI.MyWidget", $.UI.baseWidget, { 
     options: { 
      testVal:'' 
     }, 
     _create: function() { 
      $.UI.baseWidget.prototype._create.call(this); 
     } 

    }); 
}); 

あるとMyWidgetcode initilise

$('#mydiv').MyWidget({testVal:'test widget'}) 

方法であります私たちはMyWidgetからbaseWidget呼び出しにtestValオプションを渡すことができますか? と私はエラーに

キャッチされない例外TypeErrorのようないくつかのことを得る:私はコンストラクタではありません

キャッチされない例外TypeError:$(...)はMyWidgetは

は、この問題を解決するために私を助けてくださいすることができます

関数ではありません。問題。ありがとうございます。

答えて

2

正常に動作するように見えます。変更したオプションをalert(this.option.testVal);のオプションに変更し、「テストウィジェット」が表示されたら警告が表示されます。あなたはまた、ウィジェットjqueryのonReadyを作成しようとそれが問題、すなわちを修正するかどうかを確認することができます

$(function() { 
    $('#myDiv').MyWidget({testVal:'test widget'}); 
}); 

https://jsfiddle.net/5gmn6x7k/4/

+0

HI @Dhananjayで私のコードを参照してください。私はすでにJqury UIライブラリが含まれています。それでもエラーは "Uncaught TypeError:私はコンストラクタではありません" – Arun

+0

@Arun新しいフィドルを作成するか、できれば問題を再現するために自分のフィドルコードを修正してください – Dhananjay

関連する問題