我正在尝试动态设置on click事件。在我读完一些数据并恢复正常之后,onclick事件需要在dijit / form / Button上做一件事,当我回到false onclick事件需要在同一个按钮上做其他事情。
if(m_test==true){
if(dojo.byId(tmp_tst_button)){
dojo.removeClass(tmp_tst_button,'button_fr');
dojo.addClass(tmp_tst_button,'button_fr_toggle');
var change_on_click = dojo.byId(tmp_tst_button);
dojo.connect(change_on_click,'onclick',function(){
command(tmp_binary_off);
});
}
}
else{
if(dojo.byId(tmp_tst_button)){
dojo.removeClass(tmp_tst_button,'button_fr_toggle');
dojo.addClass(tmp_tst_button,'button_fr');
var change_off_click = dojo.byId(tmp_tst_button);
dojo.connect(change_off_click,'onclick',function(){
command(tmp_binary_on);
});
}
}
并且事件是连接的,但是每次更改数据时,另外一个事件onclick是ADD,所以当我点击按钮时,我会多次调用命令,并且每次都会越来越多。就像命令函数每次都附加到按钮一样。
答案 0 :(得分:1)
您需要修改dojo.connect代码,如下所示。
var handle = dojo.connect(change_on_click,'onclick',function(){
command(tmp_binary_off);
// disconnect after use.
dojo.disconnect(handle);
});