2010-11-23 15 views
2

jqueryからコールバックで 'MyClass'インスタンスを取得する方法。jqueryコールバックからクラスインスタンスを取得する

function MyClass(){  

    this.message = 'Hello World'; // I need access to this variable in the callback 

    //registering class member function as callback 
    $('div').draggable({drag:this.onDrag}); 

    this.onDrag = function(event,ui){ 

    alert(this.message); // 'this' is jquery object, not MyClass instance; 

    } 
} 

P.S. 'MyClass'インスタンスを持つグローバル変数またはインスタンスをデータに格納することは望ましくありません。

ありがとうございました!

function MyClass(){  
    var self = this; 
    this.message = 'Hello World'; // I need access to this variable in the callback 

    //registering class member function as callback 
    $('div').draggable({drag:this.onDrag}); 

    this.onDrag = function(event,ui){  
    alert(self.message); 
    } 
} 

代替(再びあなたが本当にコントロールしていない別のプラグインのコンテキストをいじりされています

答えて

4

ここで最良のオプション(IMO)は、このように私は、selfを好む、ちょうど別の参照を維持することです、IMO)それは本当に必要ではない、ちょうどあなたのクラスにアクセスするための別の参照を持つことは、多くの場合で同じように簡単で、混乱を少なくします。

+0

これは本当に簡単な解決策です。ニックありがとう! – Coyod

+0

@Coyod - ようこそ! –