jQuery - переключатель стиля CSS в зависимости от количества посещений с использованием файлов cookie - PullRequest
1 голос
/ 13 июля 2011

Я пытаюсь создать переключатель стиля на основе jQuery, который меняет класс тела в зависимости от количества посещений веб-сайта.

Проблема, с которой я сталкиваюсь, заключается в том, что код, который я использую, меняет класс при каждой загрузке страницы, а не за посещение. Количество посещений также предупреждает значение NaN в Safari.

Нужно ли указывать время сеанса? Как этого достичь? Я использую плагин 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 Ответ

1 голос
/ 13 июля 2011
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);               
};
...