伙计们。我有这样的东西:
myThing = {
str:"my string",
setClick: function(){
$("button").click(function(){
alert(this.str);
});
}
}
myThing.setClick();
问题是当我单击按钮时,该函数不知道 str 是什么。 alert(str)
给我一个错误(str is not Defined
)并且没有警报。 alert(this.str)
给我警报,但包含 undefined
。
我可以看到 this
引用了该按钮,并且该按钮没有任何名为 str
的属性。那么如何访问 jQuery 函数之外的 str 呢?
最佳答案
在 click
事件处理程序之外的 setClick
中保存对 this
的引用:
myThing = {
str:"my string",
setClick: function() {
var self = this;
$("button").click(function() {
alert(self.str);
});
}
}
<强> DEMO 。
关于jQuery - 从 jQuery 函数访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110267/