Я использую JS-Cookie, чтобы сделать простую игру-кликер. Когда я вызываю функцию, она срабатывает один раз, но затем мне нужно обновить ее, чтобы функция снова заработала. Я попытался добавить console.log после него, чтобы помочь отладить его, и журнал появляется, но Cookies.set не работает. Я не знаю, что происходит, и я не слишком знаком с этой библиотекой, поэтому любая помощь приветствуется.

Javascript

(function refreshCookies(i) {
    setTimeout(function () {
        let flame = Cookies.get('flame');
        let gems = Cookies.get('gems');
        let cuid = Cookies.get('CUID');
        let username = Cookies.get('username');
        let value = Cookies.get('value');

        let value_amount = document.getElementById('value-amount');
        let flame_amount = document.getElementById('flame-amount');
        let gem_amount = document.getElementById('gem-amount');
        let board_placing = document.getElementById('board-placing');
        let welcome_username = document.getElementById('welcome-username');
        let username_header = document.getElementById('username-header');
        let title = document.getElementById('title');

        value_amount.innerHTML = "$" + value;
        flame_amount.innerHTML = "<i class=\"fas fa-fire-alt\"></i> " + flame;
        gem_amount.innerHTML = "<i class=\"fas fa-gem\"></i> " + gems;
        welcome_username.innerHTML = "Welcome, " + username + "!";
        username_header.innerHTML = username;
        title.innerHTML = "Shoe Clicker - $" + value;
        if (--i) {
            refreshCookies(i);
        }
    }, 0500);
})(Infinity);
// clicker

function addClick() {
    Cookies.set('value', parseInt(value) + 1);
    console.log('click added!');
}

HTML

<section onclick="addClick();" class="clicker">
    <h2>Press anywhere to get money!<h2>
    <i class="fas fa-dollar-sign"></i>
</section>
0
DevOffline 25 Сен 2021 в 21:16

2 ответа

Лучший ответ

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

var money = 0
function addClick() {
  money++
  document.getElementById("demo").innerHTML = money
}
<section onclick="addClick();" class="clicker">
  <h2>Press on me to get money $ !</h2>
  <i class="fas fa-dollar-sign"></i>
</section>
<div id="demo"></div>
1
Rana 25 Сен 2021 в 18:29

Вы пробовали добавить что-то подобное?

function addClick() {
    let value = Cookies.get('value');
    Cookies.set('value', parseInt(value) + 1);
    console.log('click added!');
}
0
jurusso 25 Сен 2021 в 18:49