我目前正在用户定义的类中创建一个对话框:
$("<div>").dialog(buttons: {
'one': function () {
$(this).dialog('close').dialog('destroy');
}
});
上述工作正常,但是,this
不再引用上述函数中的类实例。我可以通过以下方式解决这个问题$.proxy
:
...buttons: {
'one': $.proxy(function () {
this.doWork();
}, this)
然后,我可以在单击对话框按钮时调用类方法。
但是,我仍然需要调用.dialog('close').dialog('destroy')
对话框元素本身。用重新定义this
后$.proxy
,如何在按钮回调中访问该元素? e.target
指的是按钮本身。
我也意识到我可以做这样的事情:
var obj = this;
...buttons: {
obj.doWork();
但我正在寻找解决方法。