Jquery cookie无法正常工作:仅在初始加载时触发

时间:2014-01-10 10:42:52

标签: jquery cookies onload-event

我希望只在初始加载时有一个容器div淡入,当我点击链接div时,它会链接回主页,但不会触发淡入淡出。我一直在尝试使用cookies,但我不熟悉它,它似乎不起作用(fadein总是触发无关紧要的东西)。有人可以帮忙吗?

http://codepen.io/alga/full/vKEuL

JQUERY:

if ($.cookie('cookie_set')) {
$('#container').css('opacity', 1);
} else {
  $.cookie('cookie_set');
$("#container").delay(1000).animate({
    opacity: 1

}, 2000);
}

CSS:

#container {background:blue;opacity:0;width:100px;height:100px;}

HTML:

<div id="container"></div>

<div id="link"><a href="http://codepen.io/alga/full/vKEuL">back</a></div>

2 个答案:

答案 0 :(得分:0)

你需要通过向$.cookie()调用传递第二个参数来为cookie设置一个值,否则cookie的值将不会被设置

if ($.cookie('cookie_set')) {
    $('#container').css('opacity', 1);
} else {
    $.cookie('cookie_set', '1');
    $("#container").delay(1000).animate({
        opacity: 1

    }, 2000);
}

演示:Fiddle

如果只传递一个参数,那么in将被视为getter请求,那么如果cookie已经存在,那么将返回该值,否则将返回undefined - 在这种情况下不会设置该值。

您需要将cookie设置为某个值,以便在第二次执行期间找到cookie。

答案 1 :(得分:0)

替换代码:

#container {background:blue; width:100px;height:100px;} /* remove the opacity */

var valueee = $.cookie('cookie_set');
if (valueee == 'the_value') {
   $('#container').show();
} else {
  $.cookie('the_cookie', 'the_value');
  $("#container").fadeIn(2000);
}
相关问题