在页面刷新时保持列表切换状态
Keep list toggle state on page refresh
当登录用户隐藏菜单的特定部分以使其在会话期间保持该状态时,我无法做到这一点。
$(document).ready(function () {
$('h1.tree-toggler').click(function () {
$(this).parent().children('ul.tree').toggle(300);
});
});
有了这个HTML:
<div>
<h1 class="tree-toggler">Heading</h1>
<ul class="tree">
<a href="#"><li>Link 1</li></a>
<a href="#"><li>Link 2</li></a>
<a href="#"><li>Link 3</li></a>
<a href="#"><li>Link 4</li></a>
<a href="#"><li>Link 5</li></a>
</ul>
</div>
切换功能完美,但当您更改页面时它不会保持原样。
如何让它在下一页保持切换状态?
您可以使用 localStorage API 来保存本地数据。
$(document).ready(function () {
let storage = localStorage || sessionStorage;
// let $component = $(document.getElementById('component'));
if (storage) {
let state = JSON.parse(storage.getItem('state'));
if (state) {
$('h1.tree-toggler').trigger('click');
// $component.toggle(300);
}
}
$('h1.tree-toggler').click(function () {
if (storage) {
storage.setItem('state', (!JSON.parse(storage.getItem('state')) || true))
}
$(this).parent().children('ul.tree').toggle(300);
});
});
您可以手动切换元素 ($component
) 或触发您已有的事件 (h1.tree-toggler[click]
)。
您可以关注link:How to get JS variable to retain value after page refresh?
您也可以使用以下代码来实现您的目的:
$(document).ready(function () {
if(localStorage.getItem("toggleState") == "1")
$('ul.tree').hide();
$('h1.tree-toggler').click(function () {
var ts = localStorage.getItem("toggleState");
if(ts == null || ts == "0") {
var tv = "1";
localStorage.setItem("toggleState", tv);
}else {
var tv = "0";
localStorage.setItem("toggleState", tv);
}
$(this).parent().children('ul.tree').toggle(300);
});
});
当登录用户隐藏菜单的特定部分以使其在会话期间保持该状态时,我无法做到这一点。
$(document).ready(function () {
$('h1.tree-toggler').click(function () {
$(this).parent().children('ul.tree').toggle(300);
});
});
有了这个HTML:
<div>
<h1 class="tree-toggler">Heading</h1>
<ul class="tree">
<a href="#"><li>Link 1</li></a>
<a href="#"><li>Link 2</li></a>
<a href="#"><li>Link 3</li></a>
<a href="#"><li>Link 4</li></a>
<a href="#"><li>Link 5</li></a>
</ul>
</div>
切换功能完美,但当您更改页面时它不会保持原样。
如何让它在下一页保持切换状态?
您可以使用 localStorage API 来保存本地数据。
$(document).ready(function () {
let storage = localStorage || sessionStorage;
// let $component = $(document.getElementById('component'));
if (storage) {
let state = JSON.parse(storage.getItem('state'));
if (state) {
$('h1.tree-toggler').trigger('click');
// $component.toggle(300);
}
}
$('h1.tree-toggler').click(function () {
if (storage) {
storage.setItem('state', (!JSON.parse(storage.getItem('state')) || true))
}
$(this).parent().children('ul.tree').toggle(300);
});
});
您可以手动切换元素 ($component
) 或触发您已有的事件 (h1.tree-toggler[click]
)。
您可以关注link:How to get JS variable to retain value after page refresh?
您也可以使用以下代码来实现您的目的:
$(document).ready(function () {
if(localStorage.getItem("toggleState") == "1")
$('ul.tree').hide();
$('h1.tree-toggler').click(function () {
var ts = localStorage.getItem("toggleState");
if(ts == null || ts == "0") {
var tv = "1";
localStorage.setItem("toggleState", tv);
}else {
var tv = "0";
localStorage.setItem("toggleState", tv);
}
$(this).parent().children('ul.tree').toggle(300);
});
});