在Extjs4中切换(隐藏/显示)

时间:2012-07-26 19:16:27

标签: extjs4 extjs

我正在尝试做类似的事情:当用户点击按钮时,子面板将显示/隐藏

问题是'onbtnClick'功能只运行一次。当我点击面板显示的按钮然后当我再次点击它没有任何反应,没有错误!小组应隐藏

4 个答案:

答案 0 :(得分:1)

从它的外观来看,没有太多需要将布尔参数传递给函数。

如果你纯粹想要一个'切换'功能,根据面板的可见性,你有一个Ext组件的引用,你可以使用isVisible()函数:

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.panel.Panel-method-isVisible

所以你的onBtnClick函数看起来像这样:

onbtnClick: function (){
    var childPanel = Ext.getCmp('p');

    if(childPanel.isVisible()) {
        childPanel.hide();
    }
    else {
        childPanel.show();
    }
}

答案 1 :(得分:1)

onbtnClick: function (){
    var childPanel = Ext.getCmp('p');

    if (!childPanel.isHidden()) {
        childPanel.hide();
    } else {
        childPanel.show();
    }
}

而是isVisible()使用方法isHidden(),因为当面板被其他组件覆盖或者尚未呈现时,方法isVisible可能返回false(即使您的面板没有隐藏属性(hidden = false) )。

答案 2 :(得分:1)

panel.getEl().toggle(); 将满足你的目的。

-YP

答案 3 :(得分:0)

您已经设置了setVisible,并使用布尔参数知道该怎么做。

childPanel.setVisible( ! childPanel.isVisible() )

此示例实际上将在每次执行时切换可见性。

相关问题