Dojo on (events) 在声明时触发

Posted

技术标签:

【中文标题】Dojo on (events) 在声明时触发【英文标题】:Dojo on (events) firing on declaration 【发布时间】:2013-07-18 14:58:12 【问题描述】:

在使用新的 Dojo Event (on) 时,我遇到了很多循环。

我第一次调用 doShowSomeDialog(null)。

为什么这个函数会进入循环? (dialog 之前被声明为 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】:

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

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

应该变成

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

【讨论】:

友好提醒,如果它对您有用,请接受答案。谢谢。

以上是关于Dojo on (events) 在声明时触发的主要内容,如果未能解决你的问题,请参考以下文章

触发.dblclick()不起作用(Dojo问题?)

Dojo onBeforeTransitionIn 未触发

Socket.io-防止触发多个事件

NodeJS基础入门-Event

以编程方式更改值时触发Dojo Select onChange事件触发

onEnded 事件未在 dojo 对话框中触发