so I know that people here had same Issue, and i have it to and just Don't know how to apply fix on my code. So basicly, when u Click start 2nd time in a row, speed double.
Here is my code
let secondsNumber = 0
let minutesNumber = 0
let hoursNumber = 0
function start() {
let interval = setInterval(() => {
secondsNumber++
seconds.innerHTML = secondsNumber
if (secondsNumber == 60) {
secondsNumber = 0
minutes.innerHTML = ++minutesNumber + '0'
}
if (minutesNumber == 60) {
minutesNumber = 0
hours.innerHTML = ++hoursNumber
}
}, 1000)
}
function stop() {
clearInterval(interval)
}
function reset() {
clearInterval(interval)
secondsNumber = 00
minutesNumber = 00
hoursNumber = 00
seconds.innerHTML = secondsNumber + '0'
minutes.innerHTML = minutesNumber + '0'
hours.innerHTML = hoursNumber + '0'
}
You can limit the button click like this
interval
value to limit start()
functionlet interval;
function start() {
if (interval) {
return;
}
interval = setInterval(() => {
secondsNumber++;
seconds.innerHTML = secondsNumber;
if (secondsNumber == 60) {
secondsNumber = 0;
minutes.innerHTML = ++minutesNumber + '0';
}
if (minutesNumber == 60) {
minutesNumber = 0;
hours.innerHTML = ++hoursNumber;
}
}, 1000);
}
Disable your start button when interval
has value
Set interval
to undefined when stop()
and reset()
functions are executed
function stop() {
if (interval){
clearInterval(interval);
interval = undefined;
}
}
function reset() {
if (interval) {
clearInterval(interval);
interval = undefined;
secondsNumber = 00;
minutesNumber = 00;
hoursNumber = 00;
seconds.innerHTML = secondsNumber + '0';
minutes.innerHTML = minutesNumber + '0';
hours.innerHTML = hoursNumber + '0';
}
}
Now there will be no second click on start function.