我尝试创建自己的折叠边栏,并且希望将cookie保存为设置(折叠或展开栏)。这里是我的代码从页脚包括文件:刷新页面后的Javascript变量页面
var cookieRightSideBar;
var $postscontainer;
var $container;
var $infocontainer;
cookieRightSideBar = document.cookie.replace(/(?:(?:^|.*;\s*)rightside_container\s*\=\s*([^;]*).*$)|^.*$/, "$1");
$postscontainer = document.getElementById('leftside');
$container = document.getElementById('rightside_container');
$infocontainer = document.getElementById('rightside');
function collapseRightside() {
document.cookie = (cookieRightSideBar == 'collapsed') ? 'rightside_container=expanded' : 'rightside_container=collapsed';
$postscontainer.style.width = ($postscontainer.style.width == '99%') ? '80%' : '99%';
$container.style.display = ($container.style.display == 'none') ? 'block' : 'none';
$infocontainer.style.width = ($infocontainer.style.width == '0%') ? '19%' : '0%';
}
if (document.getElementById('leftside')) {
var $myheight = document.getElementById ('leftside').offsetHeight - 62;
document.getElementById('rightside').style.maxHeight = $myheight + 'px';
}
if (cookieRightSideBar == 'expanded') {
$container.style.display = 'block';
$infocontainer.style.width = "19%";
$postscontainer.style.width = "80%";
}
它几乎工作,除了夫妇伤心的事情。 然后刷新一个页面后,我点击按钮展开我的酒吧,看起来像功能collapseRightside第一次点击后无法正常工作(如果展开,则会崩溃,但如果折叠为,则不会展开)。只有在第二次点击后,此功能才能正常工作。 还有一个...如果我折叠酒吧,并再次展开,然后刷新页面,酒吧出现折叠。 我不理解我在逻辑事物上有什么错误,但我不明白在哪里? 感谢您的任何帮助!
你能提供一个jsfiddle吗? –
为什么选择cookies而不是localStorage? –
@Bartek Banachewicz 它的Cookie,因为他们已经在项目中使用我试图改变。如果我使用localStorage,它可以以某种方式强制我的代码正确工作? – user3543081