javascript - 将点击事件动态更改为 dojo 按钮

标签 javascript jquery dojo

我正在尝试动态设置点击事件。在我读取一些数据并返回 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/

相关文章:

javascript - 如何使用 animateProperty 来突出显示 TextBox 背景?

javascript - 使用 Angularjs 删除后刷新联系人列表

JavaScript Fetch API - 将输出保存为对象

javascript - 避免计算代码中的注释

javascript - 尝试调试 grunt 错误

javascript - Jquery 读取编号组中选择下拉列表的数组

jquery - jquery 对话框中的自动完成选项被截断

javascript - 类型错误 : Cannot call method 'replace' of null - Backbone. js

javascript - javascript 开发者的最佳 ide - dojo 是我的目标

angularjs - 使用 ArcGIS JavaScript API 时模拟 HTTP 调用