我正在尝试动态设置点击事件。在我读取一些数据并返回 true 后,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,所以当我单击按钮时,我会多次调用命令,并且每次都会调用越来越多的命令。每次都会将类似的命令功能附加到按钮上。
最佳答案
您需要如下修改 dojo.connect 代码。
var handle = dojo.connect(change_on_click,'onclick',function(){
command(tmp_binary_off);
// disconnect after use.
dojo.disconnect(handle);
});
关于javascript - 将点击事件动态更改为 dojo 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27876254/