1

サイトのドキュメントに示されているように、標準の 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

4

1 に答える 1