我嘗試創建自己的摺疊邊欄,並且希望將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