繁体   English   中英

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

[英]How to pass button to anonymous callback function in onclick?

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

<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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM