2013-01-24 4 views
0

다양한 개체가 $ (window)의 공통 이벤트에 바인딩되는 웹 사이트에서 작업하고 있습니다. 그러나 트리거를받는 개체의 컨텍스트 내에서 이러한 함수를 실행하려고합니다. (즉, "this"를 유지하여 함수를 호출 할 때 윈도우 대신 객체를 계속 참조합니다.) 어떻게하면됩니까? 예를 들어, 객체 내부 :컨텍스트에서 bind() 호출

var someNum = 1; 

$(window).bind("test", printNum); 

function printNum() { 
    alert(this.someNum); // should return 1 
} 

답변

5

당신은 항상 특정 상황이 함수 만드는 데 사용할 수있는 아웃 $.proxy 확인 :

$(window).bind("test", $.proxy(printNum, this)); 

또한, on jQuery를 기준으로 bind 선호된다 1.7.

+0

질문을 게시 한 후 잠시 후 발견했습니다. 매력처럼 작동합니다. 감사. – theeggman85

0

자바 스크립트에서 객체 컨텍스트에 대해 명확한 적이 없었지만이 메서드를 사용하여 성공적으로 수행했습니다. 웃음 또는 감탄 :

this.someNum = 1; 

$(window).bind("test", printNum); 

var parent = this; 
function printNum() { 
    alert(parent.someNum); // should return 1 
} 
관련 문제