Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

259
Vistas
¿La función no funciona cuando hago clic en el botón?

cuando hago clic en mi botón, se supone que un temporizador muestra un temporizador de cuenta regresiva. Pero el botón no funciona.

 let timerCounter = document.getElementById("timer-counter"); let timer; let timerCount; function startTimer() { timer = setInterval(function() { timerCount--; timerElement.textContent = "Time; " + timerCount; if (timerCount === 0) { clearInterval(timer); } }); } startButton.addEventListener("click", startTimer);

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Esto es lo que encontré hasta ahora:

  • Está disminuyendo el timerCount , debe especificar el valor inicial para que funcione.
  • Está utilizando timerElement en lugar de timerCounter que ha declarado.
  • Debe pasar los segundos argumentos al setInterval que es delay .

 const timerCounter = document.getElementById('timer-counter'); const startButton = document.getElementById('start-button'); let timer; let timerCount = 30; startButton.addEventListener('click', startTimer); function startTimer() { timer = setInterval(function () { timerCount--; timerCounter.textContent = 'Time; ' + timerCount; if (timerCount === 0) { clearInterval(timer); } }, 1000); }
 <div id="timer-counter"></div> <button id="start-button">Start</button>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí hay un enfoque ligeramente diferente que evita algunos de los problemas con las variables globales. La función que llama el oyente inicializa el conteo y luego devuelve una nueva función (un cierre) que se llama cuando se hace clic en el botón. También usa setTimeout , que encuentro más fácil de entender.

 // Cache your elements const counter = document.querySelector('#counter'); const startButton = document.querySelector('button'); // Initialise your count variable function startTimer(count = 30) { // Return a function that is called from // the listener return function loop () { // Disabled the button once it's been clicked if(!startButton.disabled) startButton.disabled = true; counter.textContent = `Time: ${count}`; if (count > 0) { setTimeout(loop, 500, --count); } } loop(); } // Call startTimer to initialise the count, and return // a new function that is used as the listener startButton.addEventListener('click', startTimer(), false);
 <div id="counter"></div> <button>Start</button>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Estoy seguro de que esto podría mejorarse.

  • En este ejemplo no vamos por debajo de 0.
  • No permitimos colisiones de tiempo de espera (los tiempos de espera no se acumulan, lo que provoca velocidades de conteo extrañas).
  • Podemos restablecer el número original cuando está en 0.

 const c = document.getElementById('timer-counter') const b = document.getElementById('start-button') let timer = false let timerCount = 30 b.addEventListener('click', start) function decrement() { if(timerCount < 0) { timerCount = 30 timer = false return } c.innerText = `Count: ${timerCount}` timerCount-- timer = setTimeout(decrement, 200) } function start() { if(timer) return decrement() }
 <div id="timer-counter"></div> <button id="start-button">Start</button>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda