Veelvuldige knoppiedruk om 'n timer op JavaScript te begin
Die kode wat ek hierbo aangehaal het, het eintlik 'n sekere probleem. Hierdie probleem manifesteer hom in die geval waar daar verskeie klieke op ons knoppie gemaak word. In hierdie geval sal elke kliek lei tot die begin van 'n nuwe timer.
Dus, byvoorbeeld, sal drie drukke op die knoppie daartoe lei dat drie timers begin sal word, en elkeen van hierdie timers sal die tellerwaarde in die konsole uitvoer. Dit beteken dat die waardes drie keer vinniger sal verander!
Om die beskryfde probleem op te los, moet jy eenvoudig maak dat 'n herhaalde druk op die knoppie nie tot 'n nuwe timerbegin lei nie. Byvoorbeeld, kan jy na die begin van die timer die gebonde kliekhantering van die knoppie ontkoppel:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // ontkoppel die hantering
});
Neem jou oplossing van die vorige taak. Kontroleer dat veelvuldige druk op die knoppie lei tot 'n versnelling van die aftelling. Korrigeer hierdie probleem.