Múltiples clics en un botón para iniciar un temporizador en JavaScript
El código que he proporcionado anteriormente, en realidad tiene un problema. Este problema se manifiesta en el caso de que se hagan varios clics en nuestro botón. En este caso, cada clic provocará el inicio de un nuevo temporizador.
Es decir, por ejemplo, tres pulsaciones del botón conducirán al inicio de tres temporizadores, y cada uno de estos temporizadores mostrará el valor del contador en la consola. ¡Esto significa que los valores cambiarán tres veces más rápido!
Para resolver el problema descrito, simplemente necesitamos hacer que al pulsar nuevamente el botón no se inicie un nuevo temporizador. Por ejemplo, se puede desvincular el controlador de clic asociado al botón después de iniciar el temporizador:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // desvinculamos el controlador
});
Tome su solución de la tarea anterior. Compruebe que múltiples pulsaciones del botón provocan que el conteo se acelere. Corrija este problema.