2013-01-24 41 views
0

我正在一個網站上的各種對象綁定到$(窗口)上的常見事件。但是,我想在接收觸發器的對象的上下文中運行這些函數。 (換句話說,保留「this」,所以當它調用函數時,它仍然引用對象而不是窗口)。我該怎麼做?例如,在物體內部:調用綁定()與上下文

var someNum = 1; 

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

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

回答

5

退房$.proxy,你可以用它來創建始終有一個特定上下文的功能:

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

此外,on優於bind在jQuery的1.7。

+0

我發現這個問題後,我發現了這一瞬間,像一個魅力工程!謝謝。 – theeggman85

0

我從來沒有清楚過JavaScript中的對象上下文,但我已經成功地使用了這種方法。笑或欣賞它:

this.someNum = 1; 

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

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