我只是希望当访问者访问我的网站时可以看到该栏。一旦他关闭了酒吧,就应该保存一个cookie,并且该酒吧永远不会再出现。
因此我正在使用jquery cookie插件。任何想法为什么不起作用?
var topInfo = $.cookie('topinfo');
if (topInfo) {
$('#topBar').hide();
} else {
$('#topBar').show();
}
$('#topBar .topBarCloser').click(function() {
$(this).parent().slideUp({
duration: 300,
easing: 'easeOutQuint',
complete: function() {
$(this).remove();
$.cookie('topinfo', true, { expires: 1000 });
}
});
});
我在这里做错了什么!我已将到期日设置为1000天。
答案 0 :(得分:3)
$ .cookie无法正常工作的另一个原因(jquery.cookie不删除cookie) - 可能不是在这种情况下,但一般情况下有人可能会看到这个页面需要这个信息 - 是因为您为特定路径设置,但您尝试删除它而不再设置路径。
例:
如果你像这样设置cookie
$.cookie("CookieName", "yourValue", { path: '/' });
并尝试以这种方式删除它:
$.cookie("CookieName",null);
不起作用,你必须写:
$.cookie("CookieName", null, { path: '/'});
或之前选择的观察路径。
答案 1 :(得分:2)
我不知道您正在使用哪个Cookie插件,但如果是这个:http://plugins.jquery.com/files/jquery.cookie.js.txt
然后它说:
@param String name The name of the cookie.
@param String value The value of the cookie.
因此值必须是一个字符串 - 您已将其设置为布尔值。这可能意味着topInfo将始终为true(因为false为字符串将为“false”,这是真的!)尝试将cookie设置为字符串值:
$.cookie('topinfo', "on", { expires: 1000 });
// and then...
if (topInfo === "on") {
...
}