当我移动到不同的页面时,Dijit按钮不起作用

时间:2017-03-28 09:41:19

标签: javascript dojo mendix

[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'部分。

1 个答案:

答案 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();
            }));