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的Tab功能并强制它在选择新标签时更新URL哈希?
答案 0 :(得分:20)
使用此代码创建jQuery UI选项卡:
$('#tabs').tabs({
beforeActivate: function (event, ui) {
window.location.hash = ui.newPanel.selector;
}
});
我创建了这个答案,因为我找不到一个采用最新方法的答案。希望这有助于其他人!
答案 1 :(得分:6)
除了更新选项卡更改的哈希值(使用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);
}
});
});