2

現在選択されているタブとその内容を置き換える最良の方法は何ですか? コンテンツは URL 経由ではなく、jquery で動的に生成されます。

タブ コードまたはタブ イベント ハンドラ (表示、追加など) の外部からこれを行う必要があります。ページの別の場所にリンクがあり、クリックすると次のようになります。

  • タブのタイトルを変更する
  • タブのクラス名を変更する
  • tabcontent div のすべての要素を消去します
  • tabcontent div の className を変更します
  • tabcontent div 内に新しいコンテンツを生成する

このリンクの click() ハンドラーが持つ唯一の参照は、JQuery タブ オブジェクト ($Tabs) への参照であることに注意してください。で選択したタブを取得できます$Tabs.tabs('option','selected')。しかし、選択したタブのタブとパネルへの参照を取得するにはどうすればよいですか? jquery のタブ ハンドラ (show、add など) 内で、ui.tabandui.panelにアクセスできますが、タブ オプションからそれらを取得する方法はありますか?

現在選択されているタブを単純に削除してから、同じインデックスの場所に新しいタブを追加する方がよいでしょうか? タブのコンテンツを生成するコードを add() ハンドラーに入れる必要があると思います。

編集:誰も提案がないことに驚いています。現在選択されているタブを削除してから、同じ場所に新しいタブを追加することで機能しています。高速なブラウザでは、これは適切な解決策ですが、JavaScript が遅いブラウザでは、実際にタブが消えてから新しいタブが表示されます。動作しますが、実際には最適ではありません。

4

2 に答える 2

2

FWIW - 動的に作成されたタブ コンテンツ div コンテナーを参照してコンテンツを変更しようとする同じ問題がありました。div コンテナー「タブ」の内容を次のように参照できました。

<p>
$("#ui-tabs-1").html
</p>

ここで、1 は、コンテナーを変更する必要がある ajax タブのインデックスです。少しでもお役に立てば幸いです。

于 2010-04-09T16:24:07.363 に答える
0

(=content) indexタブパネルはゼロベースではありませんが、選択されたタブのインデックスはゼロベースであることを忘れないでください!

その中の '1'は!'#ui-tabs-1'の値です。'ui.index' (= selected tab) + 1

于 2012-01-24T17:00:01.100 に答える