我有一个包裹在李里面的标签。用户单击时,将调用jquery函数以更改其样式

 $(".sortLabelElement").click(function () {
        $(this).addClass("ActiveSortLabel");
    });


的CSS

.ActiveSortLabel{
font-weight: bold;
text-decoration: none;
background-color:#C6E035;
}


我需要将此类附加到标签,直到被同一ul列表中的另一个标签单击为止。我的问题是,当我单击此标签链接时,表单将重新加载页面和页面,在这种情况下,我将ActiveSortLabel丢失给了标签。

<li><a value="Recommended" class="sortLabelElement sortTag    sortClickedEvent">Our Recommendation</a></li>


本地存储

localStorage.setItem('ActiveSortLabel', $(this).attr("id"));

最佳答案

使用会话存储而不是本地存储。

关闭浏览器选项卡时,会话存储将过期。本地存储将物理缓存数据存储在驱动器上,没有到期日期,直到使用JavaScript删除或将浏览器缓存清除。

//Example below will clear once browser tab is exited.

    sessionStorage.setItem('ActiveSortLabel', $(this).attr("id"));


// FYI如果用户在不关闭的情况下切换选项卡,则下面的代码行将清除存储。

    $(window).blur(function(){
    sessionStorage.clear();
   })

09-07 16:23