8

JQuery UI タブは、順序付けられていないリストの名前付きアンカーによって実装されます。タブの 1 つにカーソルを合わせると、ブラウザの下部に表示されるリンクに次のように表示されます。

http://mysite/product/3/#orders

上の例は「注文」タブです。JQuery は明らかにこのアンカーへのクリックをインターセプトし、代わりにタブを開きます。

ただし、上記のリンクをブックマークするか、サイトの他の場所からリンクすると、特定のタブでページが開きません。

タブの初期化ブロックでは、URL で名前付きアンカーを検索し、見つかった場合はタブのインデックス ルックアップを実行し、その上で選択を呼び出すコードを入れることを検討していました。これは、JS をオフにしても機能することを意味します。

しかし、もっと簡単/より良い/より良い方法はありますか?

4

4 に答える 4

9

ここでこの例を見つけました:

if(document.location.hash!='') {
    //get the index from URL hash
    tabSelect = document.location.hash.substr(1,document.location.hash.length);
    $("#my-tabs").tabs('select',tabSelect-1);
}
于 2010-03-31T17:13:45.450 に答える
5

バージョン 1.8 以降、jQuery UI はこの機能をサポートしています。ここで例を参照してください:

  1. デフォルトでアクティブな 2 番目のタブ
  2. デフォルトでアクティブな 3 番目のタブ
于 2010-03-31T17:22:36.797 に答える
3

1.8 (包括的ではない) より前のバージョンの jQuery UI では、これはほとんどあなたがしなければならない方法です。タブ拡張機能(AFAIK)は、初期化されたアンカーに基づいて(ページの読み込み時に)切り替えることを認識していないため、そのビットを手動で行う必要があります(もちろん、準備完了イベントで)。

別の回答が示すように、jQuery UI 1.8 の新しいバージョンのタブは、すぐに使えるブックマークをサポートしています

于 2010-03-31T17:12:32.967 に答える
0

カスタム タブ クラスでこれを実現するために、Session プラグインを使用します。

于 2010-04-08T14:15:08.017 に答える