使用URL打开JQuery选项卡,并在选项卡单击上向URL添加哈希

时间:2012-06-13 21:38:16

标签: jquery jquery-ui jquery-ui-tabs

我正在开发一个Web应用程序,我正在使用JQuery UI Tabs插件来分离数据。
如果我将鼠标悬停在每个选项卡上,在屏幕的左下方我可以看到该选项卡的URL(例如:testPage.com/#tab1或testPage.com/#tab2)

现在,如果我在URL栏中键入其中一个地址,我不会转到与URL中的哈希相关的选项卡,而是转到应用程序中的第一个选项卡。

我的问题是:如何将特定标签锚定到网址? 因此,如果有人去testPage.com/#tab3,他们将在应用程序的标签3中结束。

我这样做也是因为我想使用JQuery BBQ插件来修改浏览器历史记录,所以我可以让用户转到他们点击后退按钮时他们所在的最后一个标签。

例:
http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/

2 个答案:

答案 0 :(得分:4)

我最终使用了Asual的JQuery Address插件。我做了以下事情:

    // For forward and back
    $.address.change(function(event){
        $("#main_tabs").tabs( "select" , window.location.hash );
    });

    // when the tab is selected update the url with the hash
    $("#main_tabs").bind("tabsselect", function(event, ui) { 
        window.location.hash = ui.tab.hash;
    });

希望这有助于某人! 谢谢。

答案 1 :(得分:2)

您也可以尝试以下方式。我在anchor元素中有name属性。此名称将添加为哈希URL。

使用Javascript:

$( "#tabs" ).tabs({
    select: function(event, ui) {                   
        window.location.hash = ui.tab.hash;                     
    }
});

HTML:

<div id="tabs" > 
    <ul>
        <li><a name="Test1" href="Home/Test1"> Tab 1  </a></li>
        <li><a name="Test2" href="Home/Test2"> Tab 2  </a></li>
        <li><a name="Test3" href="Home/Test3"> Tab 3  </a></li>            
    </ul>        
</div>