Gentagne klik på knappen for at starte en timer i JavaScript
Koden, som jeg har vist ovenfor, har faktisk et problem. Dette problem viser sig hvis der klikkes flere gange på vores knap. I dette tilfælde vil hvert klik føre til start af en ny timer.
Det vil sige, for eksempel, at tre klik på knappen vil føre til, at der startes tre timere, og hver af disse timere vil udskrive tælleværdien til konsollen. Det betyder, at værdierne vil ændre sig tre gange hurtigere!
For at løse det beskrevne problem skal vi blot gøre sådan, at et gentaget klik på knappen ikke fører til en ny start af timeren. For eksempel, kan vi efter start af timeren fjerne den tilknyttede klik-håndter fra knappen:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // fjerner håndteringen
});
Tag din løsning fra den forrige opgave. Tjek, at gentagne klik på knappen fører til en accelerering af optællingen. Ret denne problem.