绑定这个?未定义?

时间:2014-08-11 10:18:02

标签: jquery

p.test = 'hello';    

$('#btn').on('click', function(event){
    console.log(this.test); //undefined
}).bind(this);

我正试图在点击中访问我的var,我使用bind但它仍然记录'undefined'。

我哪里错了?

1 个答案:

答案 0 :(得分:2)

bind错误。您希望将this绑定到事件处理函数,而不是绑定到从' on'返回的对象的jQuery集合。方法

以下样本应该有效:

$('#btn').on('click', function(event){
    console.log(this.test);
}.bind(this));

但是,这不是很好的做法。更好的方法可能是通过某个私有变量引用this对象。通常的做法是将this对象缓存到一个名为self,that,_this或..等的局部变量中。例如,您可以使用以下方法:

var self = this;

$('#btn').on('click', function(event){
    console.log(self.test);
});