是否可以在ExtJS中使用缓冲区调用fireEvent?

j2qf4p5b  于 2022-09-26  发布在  其他
关注(0)|答案(1)|浏览(161)

我有一个按钮,当点击时,会触发事件。问题是,如果我按2-5次,事件将被触发相同的次数。
我尝试了几个选项:

buttonHendler: function() {
 this.fireEvent('myEvent',param,callback,2000)
}

buttonHendler: function() {
 Ext.Function.createBuffered(this.fireEvent('myEvent',param,callback), 2000, this)
}

但它似乎不起作用。如果有任何想法,我将不胜感激

xurqigkl

xurqigkl1#

我们暂停按钮事件,同时执行按钮应该执行的任何操作,然后重新启动恢复事件。添加微调器图标的额外奖励。

// can be in a singleton class or add to your own button or whereever.
addButtonProcessing: function(button) {
    button.prevIconCls = button.getIconCls();
    button.prevText = button.getText();
    button.setIconCls('x-fa fa-spin fa-sync');
    button.suspendEvents(); // To prevent double click
},

removeButtonProcessing: function(button) {
    button.setIconCls(button.prevIconCls);
    button.setText(button.prevText);
    button.removeCls('x-pressing');
    button.resumeEvents();
},

因此,在按钮处理程序中:

// if the methods are in the viewport controller.    
Ext.Viewport.getController().addButtonProcessing(button);
// do something
Ext.Viewport.getController().removeButtonProcessing(button);

相关问题