Jquery 使用本地存储记住上次选择的选项卡
Jquery remember last selected tab using local storage
我有这个jquery代码:
<script type="text/javascript">
$(document).ready(function() {
$(".tabLink").each(function(){
$(this).click(function(){
tabeId = $(this).attr('id');
$(".tabLink").removeClass("activeLink");
$(this).addClass("activeLink");
$(".tabcontent").addClass("hide");
$("#"+tabeId+"-1").removeClass("hide")
return false;
});
});
});
</script>
我正在尝试使它,以便在使用以下代码刷新页面时记住选项卡:
<script type="text/javascript">
$(document).ready(function() {
$(".tabLink").each(function(){
$(this).click(function(){
localStorage.selectedTab = $(this).index() + 1;
tabeId = $(this).attr('id');
$(".tabLink").removeClass("activeLink");
$(this).addClass("activeLink");
$(".tabcontent").addClass("hide");
$("#"+tabeId+"-1").removeClass("hide")
return false;
});
});
// search for local storage
if (localStorage.selectedTab) {
$(".tabLink:eq(" + (localStorage.selectedTab - 1) + ")").click();
}
});
</script>
.HTML:
<div class="tab-box">
<a href="javascript:;" class="tabLink activeLink" id="viewcustomer">View Customer</a>
<a href="javascript:;" class="tabLink activeLink" id="viewresellercustomers">View Reseller Customer</a>
<a href="javascript:;" class="tabLink activeLink" id="viewsalesmancustomer">View Salesman Customer</a>
<a href="javascript:;" class="tabLink" id="archivedcustomers">View Archived Customer</a>
</div>
<div class="tabcontent" id="viewcustomer-1">
content...
</div>.....
它工作正常,但是选项卡位于多个页面上,因此如果我转到其他页面,则会选择不同的选项卡,因为它试图记住最后一个选择的选项卡。
如何让它记住每个页面的最后一个选定选项卡?
localStorage 以保留选择:
$(document).ready(function () {
function activate(tab) {
// switch all tabs off
$(".active").removeClass("active");
// switch this tab on
tab.addClass("active");
// slide all content up
$(".content").slideUp();
// slide this content up
var content_show = tab.attr("title");
$("#" + content_show).slideDown();
}
if (localStorage) { // let's not crash if some user has IE7
var index = parseInt(localStorage['tab'] || '0');
activate($('a.tab').eq(index));
}
// When a link is clicked
$("a.tab").click(function () {
if (localStorage) localStorage['tab'] = $(this).closest('li').index();
activate($(this));
});
});
您可以创建一个将 URL 链接到所选选项卡的地图,例如
tabStorage = {
"page_url_1" : 1,
"page_url_2" : 3
}
您可以使用winow.location
获取当前页面的URL。
然后要保存/检索它,请使用 JSON.stringify
/JSON.parse
,因为localStorage
只保留键/值对,而不是对象。这里的关键是"选项卡",即值 - 地图的分级表示。
$(document).ready(function() {
var tabStorage = (localStorage && localStorage.tabs) ? JSON.parse( localStorage.tabs ) : {};
$(".tabLink").click(function(){
tabStorage[ window.location ] = $(".tabLink").index( this );
if(localStorage) {
localStorage.tabs = JSON.stringify( tabStorage );
}
});
if (tabStorage[ window.location ]) {
$(".tabLink").eq( tabStorage[ window.location ] ).trigger('click');
}
});
相关文章:
- CKeditor:更改对话框中的默认选择选项
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- AngularJs列表ng单击以选择选项转换
- 使用基于文本的 Jquery 选择选项
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 选择选项时如何显示警报
- 使用php动态更改选择选项
- 选择“选择选项”时显示文本.怎么做
- LEAFLET地图和带有选择选项的标记-ANGULARjs
- 使用js将动态内容添加到选择选项列表中
- 用于使用javascript循环选择选项
- AngularJS-选择选项并在函数中使用它
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 如何使用jQuery隐藏与选择选项相关的选择选项列表
- 选择选项是添加或删除事件
- 使用jQuery向“选择选项”添加默认属性
- 构建HTML选择字段并使用JavaScript数组选择选项
- 带有动态选择选项的Firefox html5验证异常
- 只有当Angular从资源对象检索数据时,才选择选项元素