我有多个共享相同处理程序的按钮。单击btn时,我使用addCls()更改了背景色。单击另一个btn时,我想从以前的btn中删除Cls(),然后将其添加到新的btn中。

程式码片段

//处理多个btns

handleWhatever: function (btn_){
  btn_.addCls("btncss");
  //do stuff
}


问题是..我在什么时候/在哪里调用removeCls()?

谢谢!

刚刚检查了文档ard并没有按钮“ beforeclick”事件,无论是什么

最佳答案

一种简单的方法是选择具有该类的按钮,在其上调用.removeCls('btncss'),然后将CSS添加到当前按钮。

handleWhatever: function (btn_){

    // Get all elements with class 'btncss'
    // Alternatively use the btn_ reference and call ComponentQuery functions to
    // reference your other buttons.
    var buttons = Ext.select('.btncss');

    if(buttons)
        buttons.removeCls('btncss');

    btn_.addCls("btncss");

    // do stuff
}


另一种方法是存储对单击的按钮的引用,然后在下次调用处理程序函数时,只需对该引用调用removeCls()

09-25 16:32