2016-04-25 111 views
0

您好,我的JavaScript有一個小問題。使用Cookie的JavaScript顯示/隱藏框

$(document).ready(function() { 
 
     var status = getCookie(); 
 
     if (status > 0) { 
 
     setCookie(1); 
 
     document.getElementById('cookiemenu_dropdown').style.display = "block"; 
 
     } else { 
 
     setCookie(0); 
 
     document.getElementById('cookiemenu_dropdown').style.display = "none"; 
 
     } 
 
    }); 
 
    //----------------------------------------------------- 
 
    function getCookie() { 
 
     var cookies = document.cookie.split(';'); 
 
     var FirstCookie = cookies[0]; 
 
     var FirstValue = FirstCookie.split('=')[1]; 
 
     return FirstValue; 
 
     } 
 
     //----------------------------------------------------- 
 

 
    function setCookie(value) { 
 
     var expires = new Date(); 
 
     expires.setMonth(expires.getYear() + 1); 
 
     document.cookie = 'divStav' + '=' + value + ';EXPIRES=' + expires.toGMTString(); 
 
     } 
 
     //----------------------------------------------------- 
 

 
    function ShowHideCookieBox() { 
 
     var display = document.getElementById('cookiemenu_dropdown').style.display; 
 
     if (display == "block") { 
 
     document.getElementById('cookiemenu_dropdown').style.display = "none"; 
 
     setCookie(0); 
 
     } else { 
 
     document.getElementById('cookiemenu_dropdown').style.display = "block"; 
 
     setCookie(1); 
 
     } 
 
    }
<div id='cookiemenu'> 
 
    <div class='cookiemenu_header' onclick='ShowHideCookieBox()'> 
 
    <img src='./img/triangle.png' />Letní akce! 
 
    <img src='./img/triangle.png' /> 
 
    </div> 
 
    <div id="cookiemenu_dropdown" class='cookiemenu_content'> 
 
    <span class='date'>Lorem</span> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis magna sed scelerisque hendrerit. Curabitur non quam bibendum, eleifend lorem et, bibendum turpis. Aliquam finibus velit ac lorem consectetur hendrerit. Integer viverra risus vitae 
 
    sapien 
 
    </div> 
 
</div>

腳本應該像這樣工作:

當我訪問我的網頁第一次,盒是隱藏的(默認情況下)。當我點擊標題時,框顯示出來,值1被設置在一個cookie中(我的網上只有一個cookie)。當我再次訪問時,該框應該是已打開(從Cookie JavaScript取值1,當值爲1時,將設置display:block)。

有問題。點擊和顯示/隱藏工作正常。當我第一次訪問頁面時,該框被隱藏(這也可以)。但Cookie不會保存。然後我讓框打開並按F5,頁面重新加載後隱藏框。

有人可以幫我嗎?

回答

1

適合我。你有沒有包含jQuery? 如果你想這樣做,就像你可以改變你的準備函數純JavaScript方式:

window.onload = function() { 
     var status = getCookie(); 
     if (status > 0) { 
     setCookie(1); 
     document.getElementById('cookiemenu_dropdown').style.display = "block"; 
     } else { 
     setCookie(0); 
     document.getElementById('cookiemenu_dropdown').style.display = "none"; 
     } 
    }; 
0

你有一年,將其設置爲一個月,所以你打破到期日期:

expires.setMonth(expires.getYear() + 1); 

嘗試使用setYear而不是setMonth