サイトのドキュメントに示されているように、標準の jQuery レイアウト (北、南、西、東、中央) を使用しています。
西パネルと中央パネルの両方に、ヘッダーとフッターのペインがあります。
ヘッダーやフッターを一時的に「非表示」にして、最終的にある時点で再び表示する必要があることを除いて、すべてが正しく機能しています。
ヘッダー ペインとフッター ペインをプログラムで非表示/表示する方法がわからないため、基本的な jQuery に戻ります。
次の関数を作成しました。
// action = hide, show
// panel = center, east, west
// pane = header, footer
function setPaneState(action, panel, pane) {
if (action) {
switch (action) {
case 'hide':
$(".ui-layout-" + panel + " > .ui-layout-" + pane).hide();
break;
case 'show':
$(".ui-layout-" + panel + " > .ui-layout-" + pane).show();
break;
}
}
}
そして、私はそれを次のように呼びます:
setPaneState('hide', 'center', 'header');
と
setPaneState('show', 'center', 'header');
ヘッダーを非表示にすると、フッターが同等のスペースだけ上に移動することを除いて、すべてがうまく機能します。中央のパネル自体が「更新」または「再描画」されていないようです。変更されたパネルを正しく再描画したいのですが、jQuery レイアウトにその方法を伝える方法がわかりません。
jQuery レイアウトは、パネルを非表示/表示する次の API を提供することを知っています。
layout.hide(panel); // Where 'panel' is one of: 'north', 'south', 'east', or 'west'
しかし、ペイン (ヘッダー/フッター) には何も存在しないようです。
herelayout.resizeContent("west");
に記載されているように、動作しないようで、例外がスローされることに注意してください。Uncaught TypeError: layout.resizeContent is not a function
どんな助けでも大歓迎です。
更新:これlayout.sizePane('north', 100);
は実際に機能することがわかりました。
ちなみに使ってるjquery.layout 1.4.3