javascript - 如何在 JavaScript 事件处理程序中引用对象?

标签 javascript html object self-reference

注意:这道题用到了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/

相关文章:

php - 不明白在哪里以及如何放置 javascript block 更改页面

html - 全高 div 对景观的响应

html - CSS:侧边栏 100% 高度无滚动

javascript - 识别 JavaScript 对象或关联数组中的最后一项

javascript - 哪个是javascript中对象的标准?

javascript - 如果在 jQuery 中找不到 ID,则显示不同的结果

JavaScript - 将 Canvas 文本设为白色

javascript - 引导按钮到新页面

JQuery 更改两个 div 的 CSS 属性

javascript - 对象计时器无法正常工作(暂停按钮、播放按钮)