我有以下javascript:
var testObj = function() {
this.test1 = "123";
}
testObj.prototype = {
myFunc: function() {
var input = $('<input type=button value="clickme" />');
$('body').append(input);
input.click(function () {
alert(this.test1);
});
}
}
$(document).ready( function() {
var t = new testObj();
t.myFunc();
});
我知道为什么alert
语句显示未定义,但如何让它显示test1
变量的实际值。
jsFiddle包含示例代码。
答案 0 :(得分:2)
你可以这样做
myFunc: function() {
var self = this;
var input = $('<input type=button value="clickme" />');
$('body').append(input);
input.click(function () {
alert(self.test1);
});
},
当您在点击功能中说this
时,this
会引用所点击的项目。我将self
设置为this
,以便您可以在点击功能中安全地使用self
答案 1 :(得分:1)
尝试创建对象的引用以访问它,事件上的this
引用发件人:
myFunc: function() {
var input = $('<input type=button value="clickme" />');
$('body').append(input);
var obj = this;
input.click(function () {
alert(obj.test1);
});
答案 2 :(得分:0)
var testObj = function() {
test1 = "123";
}
testObj.prototype = {
myFunc: function() {
var input = $('<input type=button value="clickme" />');
$('body').append(input);
input.click(function () {
alert(test1);
});
}
}
$(document).ready( function() {
var t = new testObj();
t.myFunc();
});