加载页面时根据cookie值隐藏div

我创建了一个div并使用jquery来隐藏和显示div。 当用户点击隐藏时我想隐藏div 5分钟,直到用户再次加载页面。 我已经将状态(无论是否隐藏)保存在cookie中。 当用户在5分钟内第二次加载页面时,应该隐藏div。 我已经尝试了下面的代码,但它无法正常工作。 有人可以帮我这个吗?

 $(document).ready(function () { if (getCookie(hidden) === "yes") { $("#divAlert").hide(); if ($("#Hide").is(":visible")) { $("#Hide").css("visibility", "hidden"); } $("#Show").css("visibility", "visible"); } $("#Hide").click(function () { $("#divAlert").hide(); if ($("#Hide").is(":visible")) { $("#Hide").css("visibility", "hidden"); } setCookie(); $("#Show").css("visibility", "visible"); }); $("#Show").click(function () { $("#divAlert").show(); $("#Hide").css("visibility", "visible"); if ($("#Show").is(":visible")) { $("#Show").css("visibility", "hidden"); } }); }); function setCookie() { var currentDate = new Date(); document.cookie = "hidden=yes;exppires=" + currentDate.getMinutes() + 1; } function getCookie(cookiename) { var results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]*)(;|$)'); if (results) return (unescape(results[2])); else return null; }  

假设你的getCookie()setCookie()函数正常工作,你的代码的这一行:

 getCookie(hidden); 

应该:

 getCookie("hidden"); 

如果你查看你的javascript错误控制台,你会立即看到这个问题,因为这可能是一个脚本错误。

您的其余代码可以像这样简化:

  $(document).ready(function () { if (getCookie(hidden) === "yes") { $("#divAlert").hide(); $("#Hide").css("visibility", "hidden"); $("#Show").css("visibility", "visible"); } $("#Hide").click(function () { $("#divAlert").hide(); $(this).css("visibility", "hidden"); $("#Show").css("visibility", "visible"); setCookie(); }); $("#Show").click(function () { $("#divAlert").show(); $(this).css("visibility", "hidden"); $("#Hide").css("visibility", "visible"); }); }); 

getCookie(cookiename)函数中,它引用了应该是cookiename cookie_name