jQuery选项卡 - 不要通过#(标签内容ID)加载标签

时间:2014-03-30 00:29:59

标签: javascript jquery jquery-ui-tabs

我正在运行jQuery v2.1.1-beta1& jquery-ui-1.10.4在我的脚本文件中包含以下JS:

$(document).ready(function(){
    $('.festival-list').tabs({
        beforeActivate: function( event, ui ) {
            ui.newTab.index();
        }
    });
};

我想解决这两个问题:


问题1:

我有一系列标签可以正常使用。我有一个带有id为Press(#press)的li的标签。如果我加载网址(http://website-url.com/news/#press)。内容(标签块)显示正确。

但是,当此网址用作页脚中的href链接页面加载但无法正确加载选项卡(#press)。目前我必须单击页脚链接然后相关选项卡加载块,没有自动化。


问题2:

其次我想哈希到网址,希望这会在导航过程中帮助用户界面。

1 个答案:

答案 0 :(得分:1)

url中的哈希仅适用于初始加载,因为$.ready函数仅运行一次(在页面加载时)。如果你想确保选项卡&页面加载后网址相互匹配,您可以执行类似

的操作
    $(window).on('hashchange', function processHashChange(e) {
        ...
    });

如果您正在寻找更多的网站范围的解决方案,特别是如果您希望UI基于URL哈希执行复杂的行为(例如,不仅仅隐藏/显示页面的一部分中的选项卡) ,您可能希望查看适当的JavaScript路由库,如Crossroads