在dojo .addOnload方法或declaraite中注册EVent监听器

时间:2011-07-09 15:20:08

标签: dojo

在dojo .addOnload方法中使用注册事件监听器或者声明注册它们之间的区别是什么?

例如我有一个按钮

<button dojoType="dijit.form.Button" id="buttonTwo">
            Show Me!
        </button>

第一种方法:

dojo.addOnLoad(function() {
var widget = dijit.byId("buttonTwo");
dojo.connect(widget, "onClick", function(){
alert('ddddd');
});

第二种方法:

<button dojoType="dijit.form.Button" id="buttonTwo"  onClick="callMe()">
            Show Me!
        </button>

1 个答案:

答案 0 :(得分:0)

没有实际区别,这取决于您希望如何组织代码。

话虽如此,我相信你应该避免在Dojo中混合使用声明式和编程式方法,以便拥有更一致的代码库。这意味着如果你选择了程序化路线,你应该做这样的事情,而不是你的第一种方法:

dojo.addOnLoad(function() {
    new dijit.form.Button(
        {
            label: "Show Me!", 
            onClick: function() {
                alert('ddddd');
            }
        },
        'buttonTwo'
    );
});
...
<button id="buttonTwo"></button>

此示例是一个完整的编程示例。根据您的偏好,您可以使用它(而不是第一种方法),或使用您的第二种方法。您可以阅读有关程序化和声明性Dojo方法here的差异的更多信息。

相关问题