dojo/on click事件在类创建后触发

lmvvr0a8  于 2022-12-08  发布在  Dojo
关注(0)|答案(1)|浏览(232)

我尝试使用dojo/on为dijit/form/button设置一个onclick事件,但不是在单击按钮时触发,而是在触发类PostCreate事件时触发。
定义按钮的HTML:

<button data-dojo-type="dijit/form/Button" id="btnLondon"
                type="button">
           London
        </button>

我试图在触发类的Postcreate时链接onclick事件,但是在触发postcreate时,在按钮被点击之前,函数被调用。

postCreate: function () {
        submit = dojo.byId("btnSubmit");
        on(submit, "click", lang.hitch(this, this.Submit("London")));//this call is made to the  function right away

}

Submit: function(Name){
        alert(Name);
    },

知道为什么会发生这种情况吗?我在define语句中加载了dojo/on
谢谢
皮特

esyap4oy

esyap4oy1#

this.submit(“伦敦”)语法意味着立即调用函数this.submit,使用参数“London”。这就是为什么在postCreate中调用它。
相反,一个可能的适当语法是(小部件有一个“on”方法,您不必使用dojo/on):

submit.on("click", lang.hitch(this, this.Submit, "London"));
...
Submit: function(name, evt){
    alert(name);
}

相关问题