Extjs 3.4按钮触发n次

时间:2018-05-17 22:28:33

标签: javascript extjs

我有一个触发某些动作的按钮,例如     someBtn.on('click'm function(..) { ... } 我在里面做了一些算术运算。我看到了计算出来的数字,这是错误的,所以我使用console.log()来跟踪它,并且多次触发动作。

更具体地说,我有一个window,比方说A,有多行,当我点击其中一行时,另一个窗口B弹出,我可以在那里输入数字。当我键入数字并单击保存时,它会执行一些操作并隐藏B窗口,我可以单击A上的其他行来更改其他行。

当我第一次点击时,B只运行一次,第二次运行两次,三次,三次.... 我一直在查看我的代码,但我不知道这是怎么发生的。

这是我的代码:

function openCustDeposit(idCustomer) {

    require(['view/Deposit'], function (dep) {
        var windep= Ext.getCmp('windep');

        if (!windep) {
            windep= new Ext.Window({
                ...
                items   : [dep.initObj],
                plain   : true,
                closable: true,
                closeAction :'hide',
                ...
                listeners:{
                    show:function() {
                        this.loadMask = new Ext.LoadMask(this.body, {
                            msg:'Loading. Please wait...'
                        });
                    },
                    destroy:function(){
                       if(this.mask)delete this.mask;
                    }
                }
            });
        } else {
            ....
        }
        ...
        windep.show();
        ...
        dep.store.load();

        dep.grid.custDepositPostBtn.on('click', function(obj,evt) 
        {
            try {
                var str_idCrdtMemo='', str_CRApply='', sumCRApply=0;
                var objGrid = grid;     
                var selRec = objGrid.selModel.getSelected();

                ....

                selRec.set('CustDeposit', sumCRApply);
                selRec.set('idPostCheck', str_idCrdtMemo.substr(0,str_idCrdtMemo.length-1));
                selRec.set('CustDeposit2', str_CRApply.substr(0,str_CRApply.length-1));
                ....
                closeWin(arCustDeposit.grid);       // window close
            }
            catch (e) { Ext.MessageBox.alert('Error', e); }
            finally {
                ....
            }
        });
    });
}`

任何建议都会非常有帮助。感谢

0 个答案:

没有答案