我正在尝试做类似的事情:当用户点击按钮时,子面板将显示/隐藏
问题是'onbtnClick'功能只运行一次。当我点击面板显示的按钮然后当我再次点击它没有任何反应,没有错误!小组应隐藏
答案 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() )
此示例实际上将在每次执行时切换可见性。