首页 > 解决方案 > 在弹出窗口中添加 24 小时 cookie 使其根本不显示?

问题描述

嘿,我的斯塔克兰同胞。

我有一个运行良好的网站的弹出窗口。从 onload 的角落打开。这是一个工作示例:https ://jsfiddle.net/zcp1sqk3/3/

然而,这就是我遇到问题的地方。我需要添加一个 cookie,使其在用户第一次看到它后 24 小时内不显示。我尝试了以下方法:

    // if no cookie
    if (!$.cookie('alert')) {
        window.onload = function() {
          $('.sliderPopUp').toggleClass('open');
        };

        $('.closex').click(function() {
          $(".sliderPopUp").addClass("close");
          // set the cookie for 24 hours
          var date = new Date();
          date.setTime(date.getTime() + 24 * 60 * 60 * 1000); 
          $.cookie('alert', true, { expires: date });
        }); 
        $('img').removeAttr('title');
    }

但它所做的只是使弹出窗口根本不显示。我似乎无法弄清楚为什么即使清除我的缓存它也不会第一次显示......

标签: javascriptjquerycsscookies

解决方案


弄清楚了。

我发现有一个 $(document).ready 函数,该函数在 body 内的脚本标记中包含一个 $.cookie,同时按预期将 cookie js 加载到 BELOW jquery 的头部导致 $(document).ready 在 cookie 之前处理插件可以完成加载。

我在 $(document).ready 脚本之前将 cookie 插件加载脚本移动到正文中,并且 cookie 有效:D


推荐阅读