2013-07-18 60 views
0

使用新的Dojo Event(on)時,我收到了很多循環。Dojo on(events)正在發佈聲明

我第一次打電話爲doShowSomeDialog(null)。

爲什麼這個函數進入循環? (對話已作爲的dijit /對話框之前已申報)

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') )); 


}); }  

看來,「上」對事件的聲明執行。

回答

0

這將在調用時執行該方法。你應該把它包裝在它自己的功能中。

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

應該成爲

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

謝謝,成功了! – user1581849

+1

友好的提醒,如果它爲你工作,接受答案。謝謝。 –