2010-11-23 4 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. 'MyClass'인스턴스가있는 전역 변수 나 인스턴스를 데이터에 저장하는 것은 바람직하지 않습니다.

감사합니다.

답변

4

여기 최선의 선택 (IMO)는 다른 기준을 유지하기 위해 그냥, 나는이 같은 self을 선호 : 대안이 다른 플러그인의 컨텍스트를 어지럽히

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); 
    } 
} 

을 정말 다시 (시기를 제어하지 않습니다 , IMO) 정말 필요하지 않습니다. 수업에 액세스하기위한 또 다른 참조 만 있으면 많은 경우 쉽게 쉽고 혼란스럽지 않습니다.

+0

아, 이건 정말 간단합니다. 대단히 고마워, 닉! – Coyod

+0

@Coyod - 환영합니다! –

관련 문제