EXTJS - 具有相同处理程序的多个btns。如何在单击btn时添加cls,然后在单击另一个btn时删除?

时间:2014-11-07 22:06:01

标签: javascript css extjs

我有多个按钮共享同一个处理程序。单击btn时,我使用addCls()更改背景颜色。当点击另一个btn时,我想从之前的btn中删除Cls()并将addCls()删除到新的btn。

代码片段

//多个btns的处理程序

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

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

谢谢!

刚检查了文档ard没有按钮“beforeclick”事件或者是什么heckkkkk

1 个答案:

答案 0 :(得分:0)

一个简单的方法是选择包含类的按钮,在其上调用.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()