使用cookie在Jquery函数中添加Timing

时间:2016-12-19 11:29:42

标签: jquery html session cookies

我制作了一个盒子,它适用于Jquery。这是Jquery的代码:

$(function(){
        setTimeout(function(){
            $('.fade').show();
            $('.form').show();
        },2000)

        $('.closebtn').click(function(){
            $('.fade').hide();
            $('.form').hide();
        })
    })

这是HTML的代码

<div class="fade"></div> <div class="form"></div> <div class="closebtn"><a href="#">x</a></div>

一旦用户点击closebtn div,然后刷新页面后,淡入淡出和表单将不会显示24小时。但仅针对点击“closebtn”的特定用户。

Fade和Form不应该在该特定IP地址或计算机上或该人的计算机的浏览器中工作24小时。如果从任何其他计算机打开网页,则可以打开淡入淡出和表单。

但即使在该计算机上用户点击“closebtn”,也不会在接下来的24小时内在该计算机上打开Fade和Form。

2 个答案:

答案 0 :(得分:1)

你可以使用Jquery Cookie插件并设置一个名为hideFormAndFade的cookie,它会在24小时后到期,这里逻辑在页面加载时从cookie获取值,如果它显示{{1然后将它们隐藏起来,然后显示。

这是代码。

下载插件后,请将其包含在您的页面中。

true

在脚本中你可以做到

<script src="/path/to/js.cookie.js"></script>

通过这种方式,您还可以随时灵活地在cookie上设置$(function(){ var flag = Cookies.get('hideFormAndFade');// this returns value if set else undefined if cookie not found if(flag && flag != "true"){ // if cookie found and if cookie value is not true setTimeout(function(){ $('.fade').show(); $('.form').show(); },2000); } $('.closebtn').click(function(){ $('.fade').hide(); $('.form').hide(); Cookies.set('hideFormAndFade', true, { expires: 1 }); // 1 is 1 day }); }); 。这将删除功能

答案 1 :(得分:0)

嗯,你可以用jQuery或简单的JavaScript来做,但我同意这应该是服务器端处理的评论。

无论哪种方式,你所要做的就是创建一个在一天内到期的Cookie,并在显示模态时检查它是否存在。

有关客户端Cookie处理的详细说明,请参阅this question

我在我的示例代码中使用了jQuery-cookie,正如参考问题所推荐的那样。

$(function(){
    setTimeout(function() {
        // check the Cookie here
        if (!$.cookie("modal"))
            $('.fade, .form').show();
    }, 2000)

    $('.closebtn').click(function(){
        $('.fade, .form').hide();

        // add Cookie here
        $.cookie("modal", true, { expires : 1 });
    })
});

您也可以使用服务器端元标记条件写入,浏览器上的本地存储或其他几种方式。