我在两个标签的同一页面中定义了两个会话存储空间。我正在检查某些条件并为会话存储分配值,但问题是更改一个会话对象的值也会更改其他值。两个会话存储都有不同的变量名称,我不确定它为什么会发生。
1- sessionStorage.setItem('ActiveSortLabelForFlight', x);
2- sessionStorage.setItem('ActiveSortLabel', x);
两个会话stoarage都在单独的JavaScript页面上
$(document).ready(function () {
var ActiveSortLabelFromPreviousReload = sessionStorage.getItem('ActiveSortLabel');
if (ActiveSortLabelFromPreviousReload != null && ActiveSortLabelFromPreviousReload != "") {
$("#" + ActiveSortLabelFromPreviousReload).addClass("ActiveSortLabel");
}
else
{
var x = $(".SortFilterMenu li").find("a[selected=selected]").attr("id");
$("#" + $(".SortFilterMenu li").find("a[selected=selected]").attr("id")).addClass("ActiveSortLabel");
if (x != null)
{
sessionStorage.setItem('ActiveSortLabel', x);
}
if(x==null)
{
var selectElementID = $(".SortFilterMenu li").find("ul li a[selected = selected]").closest("li").parent("ul").parent("li").find('a:first').attr("id");
sessionStorage.setItem('ActiveSortLabel', selectElementID);
$("#" + selectElementID).addClass("ActiveSortLabel");
}
}
(document).ready(function () {
var ActiveFlightSortLabelFromPreviousReload = sessionStorage.getItem('ActiveSortLabelForFlight');
if (ActiveFlightSortLabelFromPreviousReload != null && ActiveFlightSortLabelFromPreviousReload != "") {
$("#" + ActiveFlightSortLabelFromPreviousReload).addClass("ActiveSortLabel");
}
else
{
var x = $(".SortFlightFilterMenu li").find("a[selected=selected]").attr("id");
sessionStorage.setItem('ActiveSortLabelForFlight', x);
$("#" + $(".SortFlightFilterMenu li").find("a[selected=selected]").attr("id")).addClass("ActiveSortLabel");
if (x == null) {
var selectElementID = $(".SortFlightFilterMenu li").find("ul li a[selected = selected]").closest("li").parent("ul").parent("li").find('a:first').attr("id");
sessionStorage.setItem('ActiveSortLabelForFlight', selectElementID);
$("#" + selectElementID).addClass("ActiveSortLabel");
}
}
答案 0 :(得分:0)
我相信你的问题源于两个document.ready函数。
虽然我没有找到具体的原因,但我只是因为有一堆我无法添加到评论中的代码而在答案中发布。我已将您的代码组合并清理为单个函数。请尝试这个并报告回来:
$(function () {
var asl = sessionStorage.getItem('ActiveSortLabel');
var afsl = sessionStorage.getItem('ActiveSortLabelForFlight');
if (asl !== null && asl !== "") {
$("#" + asl).addClass("ActiveSortLabel");
} else {
var x = $(".SortFilterMenu li").find("a[selected=selected]").attr("id");
$("#" + x).addClass("ActiveSortLabel");
if (x !== null) {
sessionStorage.setItem('ActiveSortLabel', x);
} else {
var selectElementID = $(".SortFilterMenu li").find("ul li a[selected = selected]").closest("li").parent("ul").parent("li").find('a:first').attr("id");
sessionStorage.setItem('ActiveSortLabel', selectElementID);
$("#" + selectElementID).addClass("ActiveSortLabel");
}
}
if (afsl !== null && afsl !== "") {
$("#" + afsl).addClass("ActiveSortLabel");
} else {
x = $(".SortFlightFilterMenu li").find("a[selected=selected]").attr("id");
sessionStorage.setItem('ActiveSortLabelForFlight', x);
$("#" + x).addClass("ActiveSortLabel");
if (x == null) {
var selectElementID = $(".SortFlightFilterMenu li").find("ul li a[selected = selected]").closest("li").parent("ul").parent("li").find('a:first').attr("id");
sessionStorage.setItem('ActiveSortLabelForFlight', selectElementID);
$("#" + selectElementID).addClass("ActiveSortLabel");
}
}
});