我曾经有一个像这样的按钮:
<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?
最佳答案
因为它是一个没有绑定上下文的匿名函数,所以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/