Мне в принципе не важно остановить функцию или обновить аргументы(если это возможно), но вот в чем суть:
Есть код JS:
function Villager(count) {
if(VillagerFlag === true) {
setInterval(() => {
veg = veg + (count * 0.02);
fruit = fruit + (count * 0.02);
berr = berr + (count * 0.02);
document.getElementById('veg-num').innerHTML = veg.toFixed(3);
document.getElementById('veg-num-r').innerHTML = veg.toFixed(3);
document.getElementById('fruit-num').innerHTML = fruit.toFixed(3);
document.getElementById('fruit-num-r').innerHTML = fruit.toFixed(3);
document.getElementById('berr-num').innerHTML = berr.toFixed(3);
document.getElementById('berr-num-r').innerHTML = berr.toFixed(3);
}, 5000);
}
else {
return;
}
//остальной код...
function buyVillager() {
if(money >= 20) {
VallagerFlag = false;
VillagerCount = VillagerCount + 1;
Villager(VillagerCount);
console.log(VillagerCount);
}
else {
alert("У вас недостаточно монет...");
}
}
Функция
buyVillager
выполняется по нажатию кнопки в html-файле. Всё хорошо. Но при повторном нажатии функция вызывается снова(хотя стоит
return
) + вызывается новая функция.
Нужно что бы вызывалась только последняя вызванная функция, а "старая её версия - удалялась". Или просто старая версия обновляла свои аргументы. Это возможно реализовать?
Если нужно - залью на jsfiddle(только я не знаю как делиться кодом там...).