使用上下文调用bind()

the*_*n85 0 javascript jquery bind

我正在一个网站上,各种对象绑定到$(窗口)上的常见事件.但是,我想在接收触发器的对象的上下文中运行这些函数.(换句话说,保留"this"所以它在调用函数时仍然引用对象而不是窗口.)我该怎么做?例如,在对象内:

var someNum = 1;

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

function printNum() {
    alert(this.someNum); // should return 1
}
Run Code Online (Sandbox Code Playgroud)

And*_*ker 5

签出$.proxy,您可以使用它来创建始终具有特定上下文的函数:

$(window).bind("test", $.proxy(printNum, this));
Run Code Online (Sandbox Code Playgroud)

此外,onbindjQuery 1.7更受欢迎.