Button 将单击事件动态设置为dojo按钮

Button 将单击事件动态设置为dojo按钮,button,dojo,dijit.form,Button,Dojo,Dijit.form,我试图将点击事件动态设置为dijit/form/Button。 但是,我尝试的方法似乎不起作用 <button id = "newActButton" data-dojo-type="dijit/form/Button" type = "button" data-dojo-props="iconClass: 'newActButtonIcon', label: 'New Act'"></button> dijit.byId("newActButton

我试图将点击事件动态设置为dijit/form/Button。 但是,我尝试的方法似乎不起作用

<button id = "newActButton" data-dojo-type="dijit/form/Button"
    type = "button" 
    data-dojo-props="iconClass: 'newActButtonIcon', label: 'New Act'"></button>


dijit.byId("newActButton").set("onClick", newActButtonOnClick());

dijit.byId(“newActButton”).set(“onClick”,newactbuttonnonclick());

我有一个函数newActButtonOnClick(),我想启动它。

您可以尝试以下操作:

require(["dojo/on", "dojo/dom", "dojo/domReady!"],
    function(on, dom) {
        var newActButton = dom.byId("newActButton");

        on(newActButton, "click", newActButtonOnClick);
});


它不起作用,因为您的代码中有一个错误(by.Id与byId):

应该是

dijit.byId("newActButton").set("onClick", newActButtonOnClick());
编辑

试试这个:

require(["dojo/parser", "dijit/form/Button"]);

<button data-dojo-type="dijit/form/Button" type="button">Click me too!
    <script type="dojo/on" data-dojo-event="click" data-dojo-args="evt">
        require(["dojo/dom"], function(dom){
            dom.byId("result2").innerHTML += "Thank you! ";
        });
    </script>
</button>
<div id="result2"></div>
require([“dojo/parser”,“dijit/form/Button”]);
也点击我!
require([“dojo/dom”],函数(dom){
dom.byId(“result2”).innerHTML+=“谢谢!”;
});

Dojo的哪个版本?有什么原因不知道如何使用Dojo/on事件处理程序吗?我只是还看不出有什么区别。我是道场新手。使用dojo/on事件处理程序有什么特别的优点吗?有几个建议——使用
dijit.byId
,因为正在使用的按钮是一个dijit小部件,使用
widget#on
而不是全局on模块(
dijit.byId('myButton')。on('click',function(){})
@buffalo您的建议是否与1.8版以后的版本相关?Well OP使用Dojo 1、7和dijit。u Widgeton,恐怕是的。oops,您是对的。我想直到1.8版(与Dojo/connect api相比),我才真正开始使用
on
/
emit
事件样式。对不起,这是一个输入错误。dijit.byId也不起作用
require(["dojo/parser", "dijit/form/Button"]);

<button data-dojo-type="dijit/form/Button" type="button">Click me too!
    <script type="dojo/on" data-dojo-event="click" data-dojo-args="evt">
        require(["dojo/dom"], function(dom){
            dom.byId("result2").innerHTML += "Thank you! ";
        });
    </script>
</button>
<div id="result2"></div>