Dojo on(事件)在声明中开火

时间:2013-07-18 14:58:12

标签: events dojo

在使用新的Dojo事件(上)时,我获得了很多循环。

我第一次以doShowSomeDialog(null)的身份召唤。

为什么这个函数进入循环? (之前已将对话框声明为dijit / Dialog)

doShowSomeDialog = function ( value ) {

var selectName = 'selector';

if ( value ) {

    dialog.set("href", "/url/"+ selectName +"/"+ value );

} else {

    dialog.set("href", "/url");        
    dialog.show();
}

dialog.set("onDownloadEnd", function() {

    on( dijit.byId(selectName ), "change", doShowSomeDialog( dijit.byId( selectName ).get('value')  ) );


}); }    

似乎" on"在事件的声明上执行。

1 个答案:

答案 0 :(得分:0)

这将在调用时执行该方法。你应该将它包装在它自己的功能中。

doShowSomeDialog( dijit.byId( selectName ).get('value')

应该成为

function() { doShowSomeDialog( dijit.byId( selectName ).get('value'); }