当前位置 : 主页 > 网页制作 > JQuery >

jquery – 第二次访问时显示div

来源:互联网 收集:自由互联 发布时间:2021-06-15
我希望div #topmessage在用户第二次访问该网站时向下滑动.此外,当用户单击#close时,将不再显示该消息.我想我必须设置一个cookie并计算它但不确定如何.我有以下cookie插件与 jquery http://plug
我希望div #topmessage在用户第二次访问该网站时向下滑动.此外,当用户单击#close时,将不再显示该消息.我想我必须设置一个cookie并计算它但不确定如何.我有以下cookie插件与 jquery http://plugins.jquery.com/files/jquery.cookie.js.txt一起安装

<script type="text/javascript">
    jQuery(function($){ 
    $('#topmessage').delay(1000).slideDown(400);
    $("#close").click(function(){
          $("#topmessage").slideToggle(400);
        });

});
</script>
<div id="topmessage">
<a href="#" class="close" id="close">Close</a>
Hi welcome back, if you have any questions please feel free to <a href="/contact">contact me</a>.
</div>

更新:我想这样做的原因是将div推送到访问过该网站一次的用户,现在又在另一个日期返回.我不只是想第二次加载网站时显示div,但它也必须在另一个日期或会话上.据我所知,无法访问cookie的创建日期?

这应该工作:

<script type="text/javascript">
    $(function(){
        var value = $.cookie('the_cookie'),
            date = null;
        if (/^\d+$/.test(value || "")) {
             date = new Date();
             date.setTime(value);
        } else if ((value || "") == "") {
             $.cookie('the_cookie', new Date().getTime());
        }

        if (null != date /* && date meets your requirements */){
            $('#topmessage').delay(1000).slideDown(400);
            $("#close").click(function(){
                $("#topmessage").slideToggle(400);
            });
        }
    });
</script>

如果您想在每次访问时更新cookie中的日期:

if (/^\d+$/.test(value || "")) {
             date = new Date();
             date.setTime(value);
        }
        $.cookie('the_cookie', new Date().getTime());

工作演示:http://jsfiddle.net/roberkules/NL9jd/

UPDATE

添加了到期日期和cookie的路径为会话添加了第二个cookie

网友评论