注意:这道题用到了jQuery但是这道题和jQuery无关!
好的,我有这个对象:
var box = new BigBox();
这个对象有一个名为 Serialize()
的方法:
box.AddToPage();
这是方法AddToPage()
:
function AddToPage()
{
$('#some_item').html("<div id='box' onclick='this.OnClick()'></div>");
}
上面的问题是this.OnClick()
(显然是行不通的)。我需要 onclick
处理程序来调用 BigBox
类的成员。我该怎么做?
对象如何在事件处理程序中引用自身?
最佳答案
您应该使用 jQuery 附加处理程序:
function AddToPage()
{
var self = this;
$('#some_item').empty().append(
$("<div id='box'></div>")
.click(function() { self.OnClick(someParameter); })
);
}
为了强制在对象的上下文中调用事件处理程序(并传递参数),您需要添加一个匿名函数来正确调用处理程序。否则,处理程序中的 this
关键字将引用 DOM 元素。
关于javascript - 如何在 JavaScript 事件处理程序中引用对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694616/