2012-04-26 24 views
2

Main.aspxというページに3つのタブがあります。ユーザーが最初にMain.aspxにアクセスすると、URLがデフォルトのタブに変更され、別のタブがクリックされると、そのタブのIDを参照するようにURLが変更されるようにします。たとえば、Second Tabをクリックした場合、URLはMain.aspx#secondTabになります。こうすると、ページを更新すると、現在のタブに残ります。URLにJquery UI TabのIDを含めるにはどうすればよいですか?

これはどのようにして達成できますか?

<div id="everyNavigationTabID" class="everyNavigationTabClass"> 
<ul class="singleTabNavigationClass"> 
       <li><a href="#firstTab">First Tab</a></li> 
       <li><a href="#secondTab">Second Tab</a></li> 
       <li><a href="#thirdTab">Third Tab</a></li> 
      </ul>  
<div id="firstTab" class="tabContent"> 
       First Tab 
</div> 
<div id="secondTab" class="tabContent"> 
       Second Tab 
</div> 
<div id="thirdTab" class="tabContent"> 
       Third Tab 
</div> 

答えて

1

あなたの現在のURLに#断片を追加するdocument.location.hashプロパティを使用することができます。以下のような

何か -

$("div.tabContent").on('click',function(evt){ 
    document.location.href = document.location.href + "#" + $(this).attr('id'); 
    evt.preventDefault(); 
}); 

は、その後、あなたの$(function()(document.ready)機能であなたはdocument.location.hash変数を調べ、適切な処置を取ることができます。

+0

申し訳ありませんが、なぜ「返品虚偽」が含まれていますか? – Chris

+1

@Chrisクリックが起こらずにバブリングが止まる。 'preventDefault'はこれを行うための好ましい手段です。 – vcsjones

+0

素晴らしい質問です。私はいつも何かを返すように私の関数が好きです。たとえそれが疑似偽の値であっても。このような関数に 'return false'を置くのは、ユーザがクリックした要素が' href'属性を持つ ''タグである場合です - ユーザがページがスクロールするようなリンクをクリックするとトップに - falseを返すと、その動作が妨げられます。私はそれに慣れているので私はそれを使用しました:) – Lix

関連する問題