Javascript 当页面重新加载而不是Cookie时,如何存储我的li类(“active”)?
在“我的菜单”选项卡中,li元素将在单击该元素时处于“活动”状态 在刷新页面时..我将值存储在cookie$.cookie(“li”,this.id);-这很好 但是,当我从本地主机或任何环境加载网站时,这个cookie值的存储会引发错误的菜单 这意味着在加载网站时,cookie会发送旧值,并使其他菜单处于活动模式,而我处于不同的菜单中 如何以不同的方式处理这件事Javascript 当页面重新加载而不是Cookie时,如何存储我的li类(“active”)?,javascript,jquery,asp.net-mvc,jquery-ui,c#-4.0,Javascript,Jquery,Asp.net Mvc,Jquery Ui,C# 4.0,在“我的菜单”选项卡中,li元素将在单击该元素时处于“活动”状态 在刷新页面时..我将值存储在cookie$.cookie(“li”,this.id);-这很好 但是,当我从本地主机或任何环境加载网站时,这个cookie值的存储会引发错误的菜单 这意味着在加载网站时,cookie会发送旧值,并使其他菜单处于活动模式,而我处于不同的菜单中 如何以不同的方式处理这件事 //li Elements <li id="Projectsnavtab">
//li Elements
<li id="Projectsnavtab">
<li id="Homenavtab">
<li id="AboutUsnavtab">
<li id="ContactUsnavtab">
// Jquery Onclick function
var navTopList = $(".siteNav > ul > li").
$(navTopList).on('click', function () {
$(navTopList).removeClass('active');
$(this).addClass('active');
$.cookie("li", this.id); - Assigning to Cookie
});
// Getting the value from cookie when page loaded
var li = $.cookie("li");
if (li) $("#" + li).addClass("active");
//li元素
//Jquery Onclick函数
var navTopList=$(“.siteNav>ul>li”)。
$(navTopList)。在('click',函数(){
$(navTopList).removeClass('active');
$(this.addClass('active');
$.cookie(“li”,this.id);-分配给cookie
});
//加载页面时从cookie获取值
var li=$.cookie(“li”);
if(li)$(“#”+li).addClass(“活动”);
您可以使用Html5的本地存储
localstorage.setItem('id', 'linkid');
你可以把它读作
var linkId = localstorage.getItem('linkid');
也许您可以使用url哈希(#xxx)
单击li时,给它一个不同的哈希值,#1,#2,#3…,然后可以通过js获取哈希值,然后使li处于活动状态。
刷新页面时,不会丢失哈希值,因此您可以得到相同的哈希值。
当您从其他页面重定向此页面时,它将不会使用哈希,因此您可以将默认li设置为活动
顺便说一句,我认为localStorage无法解决这个问题。它只是改变你在哪里可以找到数据,而不是改变逻辑。
navTopList
它是什么?试试localStorage:working fine@Jai编辑了这个问题,它的navTopList=$(“.siteNav>ul>li”),在这个页面上写和读cookie“li”,在其他页面上删除cookie“li”,也可以使用onunload事件删除cookie,但浏览器之间会有所不同