2015-05-07 2 views
0

На первой странице загрузки печенье устанавливается и имеет значение 0.Добавление +1 к значению печенья на щелчке DIV

В основном каждый раз, когда div щелкают человек (это только для гостей) зарабатывает 1 EXP, поэтому мне нужно изменить значение cookie каждый раз, когда на div нажал +1. Страница не будет обновлена, поэтому необходимо сохранить файл cookie и показать его в прямом эфире, т. Е. «Вы заработали 50 EXP», а затем нажмите «Вы заработали 51 EXP» без обновления. Однако значение также должно оставаться на месте, если они тоже обновляются.

Я нашел код на StackOverflow, но я не знаю, как связать его:

$(document).ready(function(){ 

    //set exp cookie 
    setCookie("exp", '0'); 

    //getting the value of exp cookie and assigning it to a variable 
    var expCookieCount = getCookie("exp"); 

    $("#div").one("click",function(){ 

     expCookieCount++; 

     //set the incremented value of expCookieCount variable to exp cookie 
     setCookie("exp",expCookieCount); 

     // assigning the value of expCookiecount to variable 123 
     var 123 = getCookie("exp"); 

    }); 

}); 
+0

Вы можете задать свой вопрос более точно? В основном вы уже опубликовали решение своей проблемы. – ImreNagy

+0

Было бы намного эффективнее только ПОЛУЧИТЬ файл cookie в начале игры и только ОБНОВИТЬ его каждые х секунд или минут. Просто используйте локальную переменную для хранения «EXP» и обновите файл cookie с помощью таймера. –

+0

'var 123 = getCookie (" exp ");' Это недопустимое имя переменной – Hexaholic

ответ

1
  1. Вам необходимо включить a valid cookie script или использовать JQuery cookie plugin. Ни JS, ни jQuery не имеют встроенной поддержки файлов cookie.

  2. Вы должны инициализировать печенье, если он не существует:

Как это

FIDDLE

function showExp(exp) { 
    $("#someSpan").text("You have "+exp+" point"+(exp==1?"":"s")); 
} 

$(function(){ 
    //set exp cookie 
    var exp = $.cookie("exp"); 
    exp = (exp)?parseInt(exp,10):0; 
    showExp(exp); 

    //getting the value of exp cookie and assigning it to a variable 
    $("#div").one("click",function(){ // use .on if you want every click to count 
    exp++; 
    //set the incremented value of expCookieCount variable to exp cookie 
    $.cookie("exp",exp,{ expires: 30, path: '/' }); // expiry date 30 days 
    showExp(exp); 
    }); 
}); 
+0

См. Обновление для полного примера с скрипкой – mplungjan

+1

Очень полезно, спасибо. – frosty

0
setCookie("exp", '0'); 

Эта часть кода будет установлен exp до 0 каждый обновления. Вы должны сначала проверить, есть ли у пользователя уже установленный файл cookie exp, прежде чем устанавливать его в ноль.

$(document).ready(function(){ 

    var exp = getCookie("exp"); 

    // Im assuming your getCookie function returns "" when cookie is not present 
    if(exp===""){ 
     //set exp cookie 
     setCookie("exp", '0'); 
     exp = 0; 
    } else { 
     // Just to make sure it's an integer I had to use parseInt() 
     exp = parseInt(exp) 
    } 

    $("#div").one("click",function(){ 
     exp++; 
     //set the incremented value of expCookieCount variable to exp cookie 
     setCookie("exp", exp); 

    }); 

}); 
+0

Есть ли простой способ сделать это? – frosty

Смежные вопросы