6

HTML:

<div id="tabs">
    <ul>
        <li><a href="#settings">Settings</a></li>
        <li><a href="#fields">Fields</a></li>
    </ul>
    <div id="settings">
        //Tab Contents
    </div>
    <div id="fields">
        //Tab Contents
    </div>
</div>

如何应用 jQueryUI 的选项卡功能并在选择新选项卡时强制它更新 URL 哈希?

4

2 回答 2

20

使用此代码创建您的 jQuery UI 选项卡:

$('#tabs').tabs({
    beforeActivate: function (event, ui) {
        window.location.hash = ui.newPanel.selector;
    }
});

我创建了这个答案,因为我找不到一个使用最新方法的答案。希望这对其他人有帮助!

于 2013-07-25T18:41:05.353 回答
7

除了在标签更改时更新哈希(使用 shruggernaut 的回复中的 beforeActivate 事件),在哈希更改时更新活动标签非常有用(即启用浏览器历史记录、后退/前进按钮和用户手动输入哈希):

$(window).on('hashchange', function () {
  if (!location.hash) {
    $('#tabs').tabs('option', 'active', 0); // activate first tab by default
    return;
  }
  $('#tabs > ul > li > a').each(function (index, a) {
    if ($(a).attr('href') == location.hash) {
      $('#tabs').tabs('option', 'active', index);
    }
  });
});
于 2015-04-02T10:13:18.617 回答