2012-07-26 71 views
0

我试图做这样的事情:当按钮用户点击,孩子面板将显示/隐藏切换(隐藏/显示)在Extjs4

的问题是“onbtnClick”功能在工作一次。当我点击按钮的面板显示,然后当我再次点击它没有任何反应,没有错误寿!该面板应该隐藏

回答

1

通过它的外观,并没有太多需要将一个布尔参数传递给该函数。

如果你纯粹想“切换”功能的基础上,面板的知名度,你必须在内线组件的引用,你可以使用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(); 
    } 
} 
+0

太棒了!谢谢 !! – Shadin 2012-07-27 00:15:35

+0

没问题,很高兴帮助 – dougajmcdonald 2012-07-27 05:05:04

+0

超级谢谢你.. – Dibish 2013-12-03 04:19:47

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

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

相反ISVISIBLE()的使用方法isHidden(因为米ethod isVisible可能在面板被其他组件覆盖或者尚未渲染时返回false(即使面板没有隐藏属性(hidden = false))。

+0

你是对的..谢谢 – Dibish 2013-12-03 05:19:59

1

panel.getEl().toggle(); 将为您的目的。

-YP