2014-01-20 34 views
1

我有一个屏幕,使用jQuery选项卡,并想知道如果以某种方式,我可以保持选定的页面刷新页面(JS.reload();)?有没有办法在页面刷新后保持jQuery选定标签?

任何指导赞赏。

+3

你需要存储所选择的选项卡一些在Cookie/webstorage(localStorage的),或在服务器端 –

+1

哪里像这可能帮助 - http://stackoverflow.com/questions/18999501/bootstrap-3-keep-已选择的页面刷新刷新 – MusicLovingIndianGirl

回答

1

https://github.com/carhartl/jquery-cookie

http://code.google.com/p/cookies/downloads/detail?name=jquery.cookies.2.2.0.js.zip&can=2&q=

为jquery.cookies.2.2.0.js

$(document).ready(function() { 
    var initialTabIndex = 0; 
    var jCookies = jQuery.cookies; 

    //alert('getting ' + jCookies.get("currentTab")); 

    if(jCookies.get("currentTab") != null){ 
     initialTabIndex = jCookies.get("currentTab"); 
    } 

    $('#tabs').tabs({ 
     activate : function(e, ui) { 
     //alert('setting ' + ui.newTab.index()); 
     jCookies.set("currentTab", ui.newTab.index().toString()); 
     }, 
     active : initialTabIndex 
    }); 
}); 
+0

我是trie d这但得到一个错误消息:错误:对象不支持属性或方法'cookie'。 – connersz

+0

我更新了修复一些错误的代码。它现在正在工作,只是确保你添加jquery.cookies.2.2.0.min.js –

+0

如果你认为我的问题是有效的,你会介意为我投票,再次感谢。 – connersz

0

例子,而使用cookie肯定会工作以前的答案,这大概是不是让人们厌恶接受cookies的理想解决方案。 (这也意味着您需要在您的网站上显示声明您使用cookies的声明,至少对欧盟访客)。我建议尽可能避免使用Cookie,这样,如果Cookie被禁用/拒绝,您的网站仍然可以正常使用。

更好的方法是在URL的末尾使用“散列”。

修改您的选项卡链接如下:

<div id="UITabs"> 
<ul> 
    <li><a href="#Tab1">Tab 1</a></li> 
    <li><a href="#Tab2">Tab 2</a></li> 
    <li><a href="#Tab3">Tab 3</a></li> 
</ul> 
<div id="Tab1"></div> 
<div id="Tab2"></div> 
<div id="Tab3"></div> 
</div> 
在你的头上

然后,添加下面的JavaScript来确保散列设置改变标签时,并获得页面加载哈希和显示所需要的标签:

$(document).ready(function() { 

    $(function() { 
     $("#UITabs").tabs(); 

     $("#UITabs").bind("tabsshow", function (event, ui) { 
      location.hash = ui.newTab.find('a.ui-tabs-anchor').attr('href'); 
     }); 

     $(window).bind('hashchange', function (e) { 
      $("#UITabs").tabs("select", location.hash); 
     }); 
    }); 
}); 
相关问题