2016-04-25 82 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