p.test = 'hello';
$('#btn').on('click', function(event){
console.log(this.test); //undefined
}).bind(this);
我正试图在点击中访问我的var,我使用bind但它仍然记录'undefined'。
我哪里错了?
答案 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);
});