-1

我想以某种方式在用户第一次访问时使用 jQuery 设置一个 cookie,并显示一个将在页面就绪时加载的灯箱。

设置 cookie 后,如果他们再次访问,我想检查是否有 cookie,如果有,请不要显示灯箱。

我正在使用 cookie 插件来帮助解决这个问题。任何人都可以看到我的代码有问题吗?

$(document).ready(function(){
    var cookie = $.cookie("popup", 1);
    if(cookie == "") { 
        $.fn.colorbox({width:"500px", height:"400px", inline:true, href:"#sell"});
    }
});
4

2 回答 2

2

听起来您需要在创建 cookie 之前检查它是否存在。如果您在查找 cookie 之前创建了它,它就会一直存在!

所以,你会想要做类似的事情:

$(document).ready(function(){
    if (!$.cookie("popup")) { 
        $.fn.colorbox({width:"500px", height:"400px", inline:true, href:"#sell"});
    }
    $.cookie("popup", 1, , {expires: 365});
});

我添加了一个 expires 选项,因为正如 webdeveloper 在他的回答中指出的那样,该插件默认创建会话 cookie,这可能不是您想要的,因为它们通常在浏览器关闭时被删除。

于 2012-10-09T14:51:56.433 回答
0
$.cookie("popup", 1); 

创建会话 cookie。这段代码不返回任何东西,只是undefined

读取 cookie:

$.cookie('popup'); // => "1"

然后:

>>> undefined == ""

false

文档:jquery-cookie

于 2012-10-09T14:48:40.680 回答