1

ページに JQuery タブがあり、現在、いくつかのサーバーサイド コードをリロードまたは実行すると、タブが最初のタブに戻ります。タブを維持する方法はありますか? ページがリロードされたときに最初のタブに戻るのではなく、現在選択されているタブにタブを表示したい

私のJQuery:

 $(function () {
           var tabContainers = $('div.tabs > div');
           $('div.tabs ul.tabNavigation a').click(function () {
               tabContainers.hide();
               tabContainers.filter(this.hash).show();
               $('div.tabs ul.tabNavigation a').removeClass('selected');
               $(this).addClass('selected');
               return false;
           }).filter(':first').click();

       });

私のタブ:

<div class="tabs">
        <ul class="tabNavigation">
            <li><a href="#Annoucments">Annoucments</a></li>
            <li><a href="#Events">Events</a></li>
            <li><a href="#Photos">Photos</a></li>
            <li><a href="#JobOpportunities">Job Opportunities</a></li>
            <li><a href="#Contacts">Contacts</a></li>
            <li><a href="#Videos">Videos</a></li>
        </ul>
        <div id="Annoucments" class="ContentDIV">
      ..

        </div>
        <div id="Events" class="ContentDIV">

            ..
        </div>

        <div id="Photos" class="ContentDIV">
           ..

        </div>

        <div id="JobOpportunities" class="ContentDIV">
           ..
        </div>

        <div id="Contacts" class="ContentDIV">
           ...

        </div>

        <div id="Videos" class="ContentDIV">
           ..

        </div>

    </div>
4

3 に答える 3

0

ページの URL に get パラメータを追加します。したがって、たとえば yourpage.aspx?page=1 を持つことができます。次に、そのパラメーターをクエリ文字列から引き出して、サーバー側のコード (これが最適です) またはページ上の jQuery で「選択した」クラスを直接適用します (それほど良い解決策ではありませんが、それも機能します)。適切なタブ。

編集 (コード サンプル)

$('#[formID]').onSubmit(function () {
    var tab = $('.selected').prop('href');
    // Append a hidden field to the form containing tab. Example below
    return true;
}

...そして、サーバーからページをロードするときに、渡された値を見て、「選択した」クラスを要素に適用します。

例: jQuery - 送信時に追加パラメーターを追加する (ない ajax)

于 2012-08-06T06:13:07.867 に答える
0

ユーザー状態をどこかに保存する必要があります。

  1. Url - URL を解析し、それが自分のタブ セクションかどうかを判断します。
  2. Cookie - Cookie にユーザー情報を書き込みます (選択したタブなど)。
  3. セッション - Cookie と同じ。
  4. カスタム非表示フィールドまたは asp.net ViewState。
于 2012-08-06T06:13:25.007 に答える
0

試してみることができることの 1 つは、現在選択されているタブの href 値を保持する隠しフィールドを保持することです。これにより、ポストバックが発生したときに、その非表示フィールドから値を読み取り、正しいタブを選択できます。

于 2012-08-06T06:13:33.540 に答える