0

我的 HTML 页面中有一个按钮,我正在使用dojo.connect()它来附加一个onclick事件处理程序button。我在完成 ajax 调用后分配此事件处理程序。我遇到了一个问题,当我单击一次按钮时,事件处理程序被多次调用。

如果我调用为同一按钮上的同一事件分配事件处理程序的方法,是否会为该事件调用两次处理程序?还是道场足够聪明,只做一次?例如,

var i=3;
while(i==0){
 dojo.connect(dojo.byId('mybutton'),'onclick','hanlderMethod');
 i--;
}

如果我点击“ ”会handlerMethod被叫三遍吗mybutton

如果这是真的,那么我的问题与此有关。

4

2 回答 2

0

handlerMethod 不会被多次调用。每个事件只有一次。因此,只有当您更改关系(事件、处理程序)时,它才会再次触发。这是一个jsfiddle示例:

http://jsfiddle.net/Ktnab/

function test() {
alert("test");
}

function test2() {
alert("test");
}

dojo.connect(dojo.byId("btn"), "onclick", test);
dojo.connect(dojo.byId("btn"), "onclick", test);

查看有关 dojo connect 的这篇有趣的文章。

http://www.ibm.com/developerworks/web/library/wa-dojoconnect/index.html?ca=drs-

于 2013-03-19T08:15:49.123 回答
0

我遇到了类似的问题,当事件附件在循环之外完成时,这个问题得到了解决。

问候, 纳姆拉塔

于 2014-04-07T10:57:50.143 回答