jQuery - 基于访问次数的CSS样式切换器,使用cookie

时间:2011-07-13 08:13:44

标签: jquery css session cookies stylesheet

我正在尝试创建一个基于jQuery的样式切换器,它根据网站的访问次数更改正文类。

我遇到的问题是我使用的代码会在每次加载页面而不是每次访问时更改类。访问次数还会警告Safari中的 NaN 值。

我是否需要指定会话时间?怎么能实现这一目标?我使用的是jquery.cookie插件,这里是代码:

if(!$.cookie('visits')){
     $.cookie('visits',1, {expires: 30});
   }
   $.cookie('visits', (parseInt($.cookie('visits')) + 1), {expires: 30}) 
       //will expire after 30 days

       if(parseInt($.cookie('visits')) == 2){
        $('body').removeClass().addClass('blue');  
       } else if (parseInt($.cookie('visits')) == 3){
        $('body').removeClass().addClass('green');  
       } else if (parseInt($.cookie('visits')) == 4){
        $('body').removeClass().addClass('purple');  
       } else if (parseInt($.cookie('visits')) == 5){
        $('body').removeClass().addClass('red');  
       } else if (parseInt($.cookie('visits')) > 5){
        $.cookie('visits', 1);               
   };

帮助赞赏:)

1 个答案:

答案 0 :(得分:1)

if(!$.cookie('visits')){
     $.cookie('visits',0, {expires: 30});
   }
if(!$.cookie('last') or parseInt($.cookie('last'))+600000<new Date().getTime()) // 10minutes expired, new visit

$.cookie('visits', (parseInt($.cookie('visits')) + 1), {expires: 30}) 
   //will expire after 30 days
   $.cookie('last',new Date().getTime(),{expires: 1});
   if(parseInt($.cookie('visits')) == 2){
    $('body').removeClass().addClass('blue');  
   } else if (parseInt($.cookie('visits')) == 3){
    $('body').removeClass().addClass('green');  
   } else if (parseInt($.cookie('visits')) == 4){
    $('body').removeClass().addClass('purple');  
   } else if (parseInt($.cookie('visits')) == 5){
    $('body').removeClass().addClass('red');  
   } else if (parseInt($.cookie('visits')) > 5){
    $.cookie('visits', 1);               
};