使用jQuery cookies显示/隐藏

使用jQuery cookies显示/隐藏,jquery,cookies,Jquery,Cookies,因此,我创建了一个简单的提示框,在页面加载时淡入,并带有关闭该框的选项。如果访问者单击“关闭”链接,我会试图隐藏该框。我对Cookie相当陌生,所以我可能做错了,但这就是我所拥有的: $('#close').click(function(e) { jQuery.cookie('tip', 'hide', cookieOpts); $(this).parent('div.tip').fadeOut(1000); e.preventDefaul

因此,我创建了一个简单的提示框,在页面加载时淡入,并带有关闭该框的选项。如果访问者单击“关闭”链接,我会试图隐藏该框。我对Cookie相当陌生,所以我可能做错了,但这就是我所拥有的:

    $('#close').click(function(e) {
        jQuery.cookie('tip', 'hide', cookieOpts);
        $(this).parent('div.tip').fadeOut(1000);
        e.preventDefault();
    });

    jQuery.cookie('tip', 'show', cookieOpts);

    $('.tip').delay(500).fadeIn(1000);

    var shouldShow = jQuery.cookie('tip') == 'show';
    var cookieOpts = {expires: 7, path: '/'};

    if( shouldShow ) { 
        $('.tip').delay(500).fadeIn(1000); 
    }
    else {            
        $('.tip').css('display', 'none');
    }   

您正在传入
cookieOpts
,但变量是在它下面定义的

将其上移到首先引用的位置。

我修改了代码:

简单一点,希望能达到你想要的

var cookieOpts = {expires: 7, path: '/'};  //this isnt working for some reason
alert('c: '+$.cookie('tip')); //debug code

if( $.cookie('tip') == 'hide'){
  //do nothing
}else{
  $('.tip').delay(500).fadeIn(1000); 
  //$.cookie('tip', 'hide', {expires: 7, path: '/'}); // Add this if you want the cookie to disappear on reload (even if they don't click)
}

$('#close').click(function(e) {
  $.cookie('tip', 'hide', {expires: 7, path: '/'});
  $('.tip').hide();  
});
下面是一个使用cookies的类似awnser:


是否包含cookie JavaScript文件?是的,我已包含cookie文件。只是不明白为什么它不起作用/我改变了上面的变量,但它仍然没有达到我希望的效果。我不确定我做错了什么。淡出效果很好,我希望在用户再次访问时不要显示提示。我没有得到那种效果。不确定它是否真的有效。即使在重新加载页面后,警报仍显示为空。嗯,你想让它在重新加载时消失,即使他们没有按关闭按钮?我在(见评论)中补充了这一点。不完全是。我的计划是让它只在点击时消失,否则它会留在那里。好吧,问题是cookieOpts——它不知怎么打破了它。这个有效-