我使用jquery ui
作为我的网站的导航,在每个标签页面中,我将一些链接放到基本上由ajax动态加载的页面上。除了一个问题,每件事情都很好!
问题
我的问题是,当我点击其他第一个标签并点击我的浏览器刷新时,它会将我带回默认的第一个标签。正如我所说,我使用这些选项卡内的链接,这些链接应该是我的网站的导航,但有这个问题,这是不好的!例如,如果我单击选项卡two
,然后单击其中的任何一个链接,即SubMenu 1.1
及其正常工作和加载内容,但当我点击浏览器刷新按钮时会发生什么,它会将我带回选项卡{ {1}}虽然我仍处于标签one
two
这是代码。
SubMenu 1.1
也使用了本地存储,但它不支持浏览器支持 <div id="tabs">
<ul>
<li><a href="#fragment-1"><span>One</span></a></li>
<li><a href="#fragment-2"><span>Two</span></a></li>
<li><a href="#fragment-3"><span>Three</span></a></li>
</ul>
<div id="fragment-1">
<ul>
<li><a href="#SubMenu 1.1">SubMenu 1.1</a></li>
<li><a href="#SubMenu 1.2">SubMenu 1.2</a></li>
<li><a href="#SubMenu 1.3">SubMenu 1.3</a></li>
<li><a href="#SubMenu 1.4">SubMenu 1.4</a></li>
<li><a href="#SubMenu 1.5">SubMenu 1.5</a></li>
<ul>
</div>
<div id="fragment-2">
<ul>
<li><a href="#SubMenu 2.1">SubMenu 2.1</a></li>
<li><a href="#SubMenu 2.2">SubMenu 2.2</a></li>
<li><a href="#SubMenu 2.3">SubMenu 2.3</a></li>
<li><a href="#SubMenu 2.4">SubMenu 2.4</a></li>
<li><a href="#SubMenu 2.5">SubMenu 2.5</a></li>
</ul>
</div>
<div id="fragment-3">
<ul>
<li><a href="#SubMenu 3.1">SubMenu 3.1</a></li>
<li><a href="#SubMenu 3.2">SubMenu 3.2</a></li>
<li><a href="#SubMenu 3.3">SubMenu 3.3</a></li>
<li><a href="#SubMenu 3.4">SubMenu 3.4</a></li>
<li><a href="#SubMenu 3.5">SubMenu 3.5</a></li>
</ul>
</div>
</div>
firefox 39
和chrome 43
Ie 11
也在if(window.localStorage!==undefined){
var selected=0;
if(localStorage.currentTab){
selected=Number(localStorage.currentTab)
}else{
localStorage.currentTab=0;
}
$("#tabs").tabs({
selected: selected,
select: function(event, ui) {
localStorage.currentTab=ui.index
}
});//Do something
}else{
alert('Your browser is outdated therefore not supported local stroage!');
}
的官方网站上使用了这个值,但价格不同,但没有按照我想要的方式运作。
jquery ui
帮助将非常感激。感谢
答案 0 :(得分:0)
使用active
属性而不是selected
而activate
代替selected
处理程序。
ui.index
未定义,因为ui
对象上没有该属性。
而是使用$(ui.newTab[0]).index()
- jQuery对象为您提供当前li
,您可以获得它的索引。
$("#tabs").tabs({
active: selected,
activate: function(event, ui) {
localStorage.currentTab = $(ui.newTab[0]).index()
}
});
始终使用开发人员工具来调试或检查是否存在任何错误。这让生活更轻松。
<强> jSFiddle 强>