1

タブ付きコンテンツで Jquery を使用しています。現在のタブに関係なく、ページを更新するたびに、常にタブ番号 1 に戻ります。元のタブにとどまるにはどうすればよいですか?

ここに私のテストサイトがあります

ご協力いただきありがとうございます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <title>test</title>
    <style type="text/css">
      #tabbed_box_1 {
        width: 855px;
      }
      .tabbed_area {
        background-color: #fff;
        padding: 0px;
      }
      ul.tabs {
        margin: 0px;
        padding: 0px;
      }
      ul.tabs li {
        display: inline;
        list-style: none;
      }
      ul.tabs li a {
        background-color: red;
        border: 1px solid #111;
        color: #fff;
        font-size: 20px;
        padding: 6px 16px;
      }
      ul.tabs li a:hover {
        border-color: #111;
        cursor: pointer;
      }
      ul.tabs li a.active {
        background-color: #fff;
        border: 1px solid #111;
        color: #666;
        cursor: pointer;
      }
      .tabrightcontent {
        background-color: #fff;
        border: 1px solid #111;
        height: 500px;
        padding: 20px;
      }
      #content_2,
      #content_3,
      #content_4,
      #content_5 {
        display: none;
      }
      ul.tabs {
        margin: 0px;
        margin-bottom: 0px;
        margin-top: 0px;
        padding: 0px;
      }
    </style>
  </head>
  <body>
    <script>
      $(document).ready(function () {
        $(".tabs a").click(function () {
          $(this).addClass("active").parent().siblings().find("a.active").removeClass("active");

          var id = $(this).parent().parent().find("a").index(this);
          $(this).parent().parent().parent().find(".tabrightcontent").css({
            display: "none"
          }).eq(id).css({
            display: "block"
          });
        });
      });
    </script>
    <div id="tabbed_box_1" class="tabbed_box">
      <div class="tabbed_area">
        <ul class="tabs">
          <li><a class="tab active">Tab Number 1</a></li>
          <li><a class="tab">Tab Number 2</a></li>
          <li><a class="tab">Tab Number 3</a></li>
        </ul>
        <div id="content_1" class="tabrightcontent">
          Tab Number 1 Content
        </div>
        <div id="content_2" class="tabrightcontent">
          Tab Number 2 Content
        </div>
        <div id="content_3" class="tabrightcontent">
          Tab Number 3 Content
        </div>
      </div>
    </div>
  </body>
</html>
4

2 に答える 2

1

cookieタブを作成するときにオプションを使用します。

詳細についてはjQuery UI doc を参照してください。以下に例を示します。

// Initialize a tabs with the cookie option specified.
$( ".selector" ).tabs({ cookie: { expires: 30 } });
// Get or set the cookie option, after init.
//getter
var cookie = $( ".selector" ).tabs( "option", "cookie" );
//setter
$( ".selector" ).tabs( "option", "cookie", { expires: 30 } );
于 2012-04-24T20:05:09.670 に答える
0

document.location.hash を使用すると、更新せずにアドレス バーを変更できるため、タブをクリックするたびに document.location.hash を固有のもの (タブ ID など) に変更します。

次に、ページの読み込み時に document.location.hash を確認し、それがタブの ID である場合は、そのタブに切り替えます。

于 2012-04-24T20:00:51.537 に答える