在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>
答案 0 :(得分:0)
没有实际区别,这取决于您希望如何组织代码。
话虽如此,我相信你应该避免在Dojo中混合使用声明式和编程式方法,以便拥有更一致的代码库。这意味着如果你选择了程序化路线,你应该做这样的事情,而不是你的第一种方法:
dojo.addOnLoad(function() {
new dijit.form.Button(
{
label: "Show Me!",
onClick: function() {
alert('ddddd');
}
},
'buttonTwo'
);
});
...
<button id="buttonTwo"></button>
此示例是一个完整的编程示例。根据您的偏好,您可以使用它(而不是第一种方法),或使用您的第二种方法。您可以阅读有关程序化和声明性Dojo方法here的差异的更多信息。