如何使用 cookie 或 localStorage 记住 open/closed div 的状态?
How to remember open/closed state of div using cookie or localStorage?
我试图让 div 保持关闭状态,直到有人点击它,然后记住它是打开还是关闭。这是我目前所拥有的:
<input id="chk1" type="button" value="Click here"/>
<div id="box1" style="display:none">
<!-- HTML STUFF HERE -->
</div>
<script>
jQuery.noConflict();
jQuery(document).ready(function($) {
$('#chk1').click(function() {
$('#box1').slideToggle('200');
localStorage.setItem('show', 'true');
});
});
</script>
除了不记得 div open/closed 状态外,它可以正常工作。
如果可能的话,我想在不添加更多脚本的情况下完成。
您的问题是您实际上并没有在任何地方检查 localStorage。您也不应将 show
设置为 'true'
,因为您正试图切换此设置。
<script>
jQuery.noConflict();
jQuery(document).ready(function($) {
$box1 = $('#box1');
const show = JSON.parse(localStorage.getItem('show'));
if (show) {
$box1.show();
} else {
// initialize value in case it hasn't been set already
localStorage.setItem('show', false);
}
$('#chk1').click(function() {
$box1.slideToggle('200');
// toggle the boolean by negating its value
const show = JSON.parse(localStorage.getItem('show'));
localStorage.setItem('show', !show);
});
});
</script>
请注意,从本地存储检索的值必须解析为 JSON,因为它们是作为字符串提供给您的。
并始终正确缩进嵌套块,让您的生活更轻松。更容易阅读。
我试图让 div 保持关闭状态,直到有人点击它,然后记住它是打开还是关闭。这是我目前所拥有的:
<input id="chk1" type="button" value="Click here"/>
<div id="box1" style="display:none">
<!-- HTML STUFF HERE -->
</div>
<script>
jQuery.noConflict();
jQuery(document).ready(function($) {
$('#chk1').click(function() {
$('#box1').slideToggle('200');
localStorage.setItem('show', 'true');
});
});
</script>
除了不记得 div open/closed 状态外,它可以正常工作。
如果可能的话,我想在不添加更多脚本的情况下完成。
您的问题是您实际上并没有在任何地方检查 localStorage。您也不应将 show
设置为 'true'
,因为您正试图切换此设置。
<script>
jQuery.noConflict();
jQuery(document).ready(function($) {
$box1 = $('#box1');
const show = JSON.parse(localStorage.getItem('show'));
if (show) {
$box1.show();
} else {
// initialize value in case it hasn't been set already
localStorage.setItem('show', false);
}
$('#chk1').click(function() {
$box1.slideToggle('200');
// toggle the boolean by negating its value
const show = JSON.parse(localStorage.getItem('show'));
localStorage.setItem('show', !show);
});
});
</script>
请注意,从本地存储检索的值必须解析为 JSON,因为它们是作为字符串提供给您的。
并始终正确缩进嵌套块,让您的生活更轻松。更容易阅读。