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

时间:2014-05-28 21:00:14

标签: javascript this

我曾经有这样一个按钮:

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

其中&#34;这个&#34;正在传递的是按钮。一切都很好。

当我把它更改为:

<input type="button" value="Save" onclick="ShowConfirmation('Confirm', 'Some message...', function () { SaveReleaseStage(this, 'Reassigned', 'ReleaseStage/ReassignProcess'); });" />
&#34;这&#34;现在是Window对象而不是按钮。

有没有办法将按钮传递给回调而不需要添加ID并使用getElementById或jQuery?

1 个答案:

答案 0 :(得分:3)

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

在此处进一步了解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/