[UPDATE]
根据此处的建议改进代码。
-
我使用dijit和dgrid构建了一个网格:
define([
...
], function (declare, _WidgetBase, _TemplatedMixin, ...) {
return declare("MyGrid.widget.MyGrid", [ _WidgetBase, _TemplatedMixin ], {
deleteButton: new MendixButton({
className: "btn mx-button claro haasgridbutton",
iconClass: "dijitIconDelete"
}),
...
postCreate: function () {
...
addButtons();
},
...
addButtons: function () {
...
dojoConstruct.place(this.deleteButton.domNode, this.objectButtonsNode);
this.deleteButton.on("Click", dojo.hitch(this, function () {
this._deleteObjectDialog();
}));
},
});
});
require(["MyGrid/widget/MyGrid"]);
无论出于何种原因,如果我离开页面并返回,删除按钮(或任何其他)都不起作用。函数deleteObjectDialog();
根本就没有被调用,我不知道为什么,我也不知道如何调试它。
调试器从函数开始,我无法使用Inspector找到'onClick'部分。
答案 0 :(得分:1)
您在这里使用的语法是错误的。事件未使用set
附加。它们使用on
附加。您对this
的引用也不正确。在onClick
调用中,this
将引用deleteButton
而不是网格小部件。而不是:
this.deleteButton.set("onClick", function () {
l_this._deleteObjectDialog();
});
应该是:
this.deleteButton.on("Click", dojo.hitch(this, function () {
this._deleteObjectDialog();
}));