将click事件动态更改为dojo按钮

时间:2015-01-10 12:30:08

标签: javascript jquery dojo

我正在尝试动态设置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,所以当我点击按钮时,我会多次调用命令,并且每次都会越来越多。就像命令函数每次都附加到按钮一样。

1 个答案:

答案 0 :(得分:1)

您需要修改dojo.connect代码,如下所示。

var handle = dojo.connect(change_on_click,'onclick',function(){
                command(tmp_binary_off);
                // disconnect after use.
                dojo.disconnect(handle);

             });