Jquery 在一段时间内关闭一个部门

Jquery 在一段时间内关闭一个部门,jquery,Jquery,我随身带着这个标记 <div id="message"> <h2>Some Heading</h2> <span> <img src="" alt="close"></img> </span> </div> 但当我刷新页面时,它再次出现。现在我发现插件是确保DIV不会再次出现的方法,但是我无法用这个例子来连接它 我基本上想设置cookie来隐藏di

我随身带着这个标记

<div id="message">
    <h2>Some Heading</h2>
    <span>
            <img src=""  alt="close"></img> 
    </span>
</div>
但当我刷新页面时,它再次出现。现在我发现插件是确保DIV不会再次出现的方法,但是我无法用这个例子来连接它

我基本上想设置cookie来隐藏div 7天。当有人访问页面7天后,再次显示div

有什么想法吗


这里有一个fiddle

如果您的浏览器要求允许,使用cookie的另一种选择是使用HTML5本地存储来存储日期,您可以使用该日期来决定是否显示div

链接:

jQuery cookie插件对此不是必需的。要更改到期时间限制,请将
86400000*7
更改为您想要的任何值。时间单位为毫秒(86400000是一天乘以7)

添加
显示:无
#消息
CSS

Javascript:

var cookies = document.cookie;

if(cookies.search('hideMessage=1') === -1){
    $("#message").show();
}

$("#message").click(function() {
    $(this).fadeOut("slow");
    document.cookie = 'hideMessage=1; expires='+(new Date(Date.now()+(86400000*7)).toUTCString());
});
试试看

我使用jquerycookie插件

这是一个好主意,设置
$.cookie('the_cookie','the_value',{expires:7})单击div时,在文档加载时检查是否设置了cookie

例如


很好的建议,但ppl可能没有使用HTML5浏览器,所以我只能选择cookie选项Brilliant Adam。我喜欢无插件的方法。@user3279259没问题!只有一个后续问题。如果只要cookie驻留在用户的机器上,我就必须永远关闭它怎么办?@user3279259如果你想永远存储cookie,你只需要将这个数字设置得非常高。所以只要做一些类似于
Date.now()+(86400000*365*3)
的事情就可以了。事实上,这是永远不会发生的。(显然这是可能的,但不太可能)如果要将cookie设置为可能的最大日期,请使用
新日期(2147483646999)
。这会将日期设置为32位操作系统历元时间的最大int值。你可以阅读更多,而且。
var cookies = document.cookie;

if(cookies.search('hideMessage=1') === -1){
    $("#message").show();
}

$("#message").click(function() {
    $(this).fadeOut("slow");
    document.cookie = 'hideMessage=1; expires='+(new Date(Date.now()+(86400000*7)).toUTCString());
});
$(function() {
  // check cookie set or not, if set hide div else show div
  if( $.cookie('message_cookie') != 'undefined' ) {
    $("#message").hide();
  } else {
    $("#message").show();
  }

  $("#message").click(function() {
    $(this).fadeOut("slow");
    //set a cookie
    $.cookie('message_cookie', '1', { expires: 7 });
  });
});