私は次のようなことをしようとしています:ユーザーがボタンをクリックすると、子パネルが表示/非表示になります
問題は、「onbtnClick」関数が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();
}
}
panel.getEl().toggle();
あなたの目的に役立ちます。
-YP
onbtnClick: function (){
var childPanel = Ext.getCmp('p');
if (!childPanel.isHidden()) {
childPanel.hide();
} else {
childPanel.show();
}
}
isVisible() メソッドisHidden () を使用する代わりに、 isVisibleメソッドは、パネルが他のコンポーネントによって覆われている場合、またはまだレンダリングされていない場合 (パネルに隠しプロパティ (hidden = false) がない場合でも) を返す可能性があるためです。
あなたは何をすべきかを知るためにブール値のパラメータを取ってsetVisibleを持っています。
childPanel.setVisible( ! childPanel.isVisible() )
この例では、実行ごとに可視性を実際に切り替えます。