在使用新的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"在事件的声明上执行。
答案 0 :(得分:0)
这将在调用时执行该方法。你应该将它包装在它自己的功能中。
doShowSomeDialog( dijit.byId( selectName ).get('value')
应该成为
function() { doShowSomeDialog( dijit.byId( selectName ).get('value'); }