请参阅以下代码,
var XClass = function () {
this.dataMember = "hello world";
$("div").on("click", "button", function() {
console.log(this.dataMember); //error
});
}
如何在 on 功能中访问this.dataMember?我在go上搜索了js。
答案 0 :(得分:3)
尝试将this
分配给变量:
var XClass = function () {
var that = this;
this.dataMember = "hello world";
$("div").on("click", "button", function() {
console.log(that.dataMember);
});
}
这样,that
将引用当前的XClass对象。否则,在事件处理程序回调中,this
引用被单击的对象。
答案 1 :(得分:1)
使用bind
设置上下文
var XClass = function () {
this.dataMember = "hello world";
$("div").on("click", "button", function() {
console.log(this.dataMember); //error
}.bind(this));
}
答案 2 :(得分:1)
将this
分配给变量:
var XClass = function () {
var self = this;
this.dataMember = "hello world";
$("div").on("click", "button", function() {
console.log(self.dataMember); // no error
});
}