Почему мой localstorage не сохраняет значение переменной после обновления?

#javascript #json #variables #refresh

#javascript #json #переменные #обновить

Вопрос:

Итак, у меня есть некоторый код, в котором я хочу сохранить значение определенной переменной после перехода на другую страницу, и когда я возвращаюсь на исходную страницу и нажимаю определенную кнопку, это увеличивает ее значение и сохраняет значение increades. Проблема в том, что код, похоже, работает не так, как предполагалось. Значение переменной по умолчанию равно 0, при нажатии кнопки оно увеличивается на 2 и сохраняется с использованием localstorage, и я отправляюсь на свою другую страницу, а затем, когда я возвращаюсь на исходную страницу и снова нажимаю ту же кнопку, переменная снова равна 2. Почему это? Вот мой код:

 $(document).ready(function()
{
    var isShoes = false
    var isShirt = false
    var oneMoreShoe = false
    var buttonClicked = 0;

    $('#purchaseShoes').on('click', function()
    {
        buttonClicked =2;
        var Shoes = localStorage.setItem('img_shoes', '/static/Images/Sneakers.png')
        var clicksCounter = localStorage.setItem('buttonClicked', JSON.stringify(buttonClicked))
        var retainClicksCount = localStorage.getItem('buttonClicked')
        var actualClickCount = JSON.parse(retainClicksCount)
        isShoes = localStorage.setItem('isShoes', true)
        alert(retainClicksCount)
        if(retainClicksCount>= 4){
            oneMoreShoe = localStorage.setItem('oneMoreShoe', true)
         }
    })
    
})
  

Ответ №1:

 $(document).ready(function()
{
    var isShoes = false
    var isShirt = false
    var oneMoreShoe = false
    var buttonClicked = 0;
    
    if (localStorage.getItem('buttonClicked')) // check if button click exists in storage and assign it to your variable
    {
        buttonClicked = localStorage.getItem('buttonClicked');
    }
    $('#purchaseShoes').on('click', function()
    {
        buttonClicked =2;
        var Shoes = localStorage.setItem('img_shoes', '/static/Images/Sneakers.png')
        var clicksCounter = localStorage.setItem('buttonClicked', JSON.stringify(buttonClicked))
        var retainClicksCount = localStorage.getItem('buttonClicked')
        var actualClickCount = JSON.parse(retainClicksCount)
        isShoes = localStorage.setItem('isShoes', true)
        alert(retainClicksCount)
        if(retainClicksCount>= 4){
            oneMoreShoe = localStorage.setItem('oneMoreShoe', true)
         }
    })
})
  

Каждый раз, когда вы обновляете свою страницу, ваша переменная buttonClicked становится = 0. Вам нужно проверить, существует ли локальная переменная, если это так, вы получаете значение для переменной вашего скрипта из localstorage, а затем добавляете 2 и работаете с ним.