javascript - 如何将按钮传递给onclick中的匿名回调函数?

标签 javascript this

我曾经有一个这样的按钮:

<input type="button" value="Save" onclick="SaveReleaseStage(this, 'Reassigned', 'ReleaseStage/ReassignProcess');" />

其中传递的“this”是按钮。一切都很顺利。

当我将其更改为:

<input type="button" value="Save" onclick="ShowConfirmation('Confirm', 'Some message...', function () { SaveReleaseStage(this, 'Reassigned', 'ReleaseStage/ReassignProcess'); });" />

“this”现在是 Window 对象,而不是按钮。

有没有办法将按钮传递给回调,而无需添加 ID 和使用 getElementById 或 jQuery?

最佳答案

因为它是一个没有绑定(bind)上下文的匿名函数,因此 this 默认为全局对象。在您的情况下,这将是窗口

在此处进一步阅读有关行为:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

更新:根据您的问题编辑,您可以传入对按钮的闭包引用:

<input type="button" value="Save" onclick="var self=this; ShowConfirmation('Confirm', 'Some message...', function () { SaveReleaseStage(self, 'Reassigned', 'ReleaseStage/ReassignProcess'); });" />

演示:http://jsfiddle.net/8caMT/

关于javascript - 如何将按钮传递给onclick中的匿名回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23921777/

相关文章:

javascript - 将登录页面集成到hugo

javascript - jQuery点击改变颜色

javascript - 在 jQuery 方法中访问对象文字的属性

javascript - 向正则表达式添加条件

javascript - 通过 JavaFX 中的 WebEngine 使用 JS 脚本将值插入密码字段

javascript - 下拉列表在用户可以将鼠标指针移动到它之前消失

javascript - 获取点击链接的 ID 并更改其类别

javascript - 是否有一个 Javascript 习惯用法,其中函数 `func` 被称为 `func.bind(this)`

c++ - 直接调用析构函数后 `new (this) MyClass();`是不是未定义行为?

javascript - 类组件中的功能组件