2011-03-22 65 views
0

这就是我想要做的 - 在有人第一次访问我的网站时运行一系列jQuery动画。用jQuery破坏饼干

我想用动画的标准jQuery调用和jQuery Cookie plugin来记录他们以前是否访问过。

大部分我想正在与这段代码是什么:

<script type="text/javascript"> 
jQuery(document).ready(function() { 
    jQuery.cookie('visited', 'no', { expires: 14 }); 
    var visited = jQuery.cookie('visited'); 
    if (visited == 'no') { 
     jQuery("#navigation-wrap").delay(500).animate({ 
     marginLeft: "0px" 
     }, 500); 
    jQuery('.page-navigation').delay(1000).slideToggle(400); 
    jQuery('.page-navigation').delay(1000).slideUp(300); 
    jQuery("#navigation-wrap").delay(2000).animate({ 
     marginLeft: "-180px" 
     }, 500);  
     } 
    jQuery.cookie('visited', 'yes'); 
}); 
</script> 

但是,即使cookie值正在访问后更改为“是”,动画仍然运行,如果我刷新网页...

回答

0

感谢凯文指出这一点并@Johnnyb上CSS-tricks.com

此代码的要求:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     var visited = jQuery.cookie('visited'); 
     if (visited == 'yes') { 
      return false; 
     } else { 
      jQuery("#navigation-wrap").delay(500).animate({ 
      marginLeft: "0px" 
      }, 500); 
     jQuery('.page-navigation').delay(1000).slideToggle(400); 
     jQuery('.page-navigation').delay(1000).slideUp(300); 
     jQuery("#navigation-wrap").delay(2000).animate({ 
      marginLeft: "-180px" 
      }, 500);  
      } 
     jQuery.cookie('visited', 'yes', { expires: 7 }); 
    }); 
</script> 

感谢您的帮助,伙计们!

+0

如果回答您的问题,请不要忘记标记答案为已接受。 – Kevin 2011-03-23 11:35:11

4

您设置cookie回“不”每次页面重新加载这一行:

jQuery.cookie('visited', 'no', { expires: 14 });

然后,当您的if语句检查值是否为“否”时,它会返回true,因为您从字面上将其更改为上面2行中的“否”。

您必须先检查cookie的存在,然后放置它。

只要jQuery的触发执行下面的代码段的文档准备事件:

jQuery.cookie('visited', 'no', { expires: 14 });

这设置visited cookie来值'no'。设置好cookie后,检索它并检查值是否等于'no',它现在是。

var visited = jQuery.cookie('visited'); 
if (visited == 'no') { 
    ... 
} 

而且if语句后您设置visited cookie的值'yes'。但只要您重新加载页面,我们又回到第一步,因为visited Cookie的值设置为'no'

+0

好的 - 干杯!我不确定你的意思 - 你有一段代码的例子吗? – Infocentre 2011-03-22 16:21:45

+0

@Infocentre我会给你一个tommorow的例子,因为我目前在我的手机:)。 – Kevin 2011-03-22 21:10:00