コンテンツにリンクがあるjQuery uiウィジェットがあります
<a href="test" data-foo="clickThis">Click me</a>
関数では、_create
クリックイベントハンドラーをアタッチし、インスタンス変数を作成します
_create: function () {
//*this* here refers to widget
this.$elem.on('click', 'a[data-foo]', this._clickHandler);
this.instanceVariable = "someValue";
}
_clickHandler: function (event) {
//**this** in here refers to link, not to widget
//Question: How to call _otherPrivateFunction from here
}
_otherPrivateFunction(){
//I want to access this.instanceVariable in here
}
1 つのページにウィジェットの複数のインスタンスがあるため、それぞれが独自の instanceVariable にアクセスする必要があります。これを行うために私が見つけた1つの方法は、クリックハンドラーに渡すthis
ことevent.data
ですが、これは単なる回避策であるため、この解決策は好きではありません。
this.$elem.on('click', 'a[data-foo]', this, this._clickHandler);
より良い解決策をいただければ幸いです。