• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

155
Vistas
elimine la clase solo una vez cuando agregue la clase muchas veces

Tengo un código siguiente:

 btn.onclick = function() { toast.classList.add('showToast') setTimeout(function() { toast.classList.remove('showToast') }, 3100) }

Supongamos que en 0 s hago clic muchas veces en el botón, por lo que tal vez en 3.1 s recibo una gran cantidad de eliminación de manija en brindis, esto no es lo que espero porque tal vez en 3.2 s hago clic en el botón una vez más brindis desaparece inmediatamente en lugar de acción en 3.1 s. Quiero que los usuarios puedan hacer clic en el botón tantas veces como quieran, equivalente a que addClass() se maneje mucho tiempo, pero removeClass() solo se maneje una vez correspondiente a la última addClass() y al último clic. ¿Cómo puedo hacer eso, o tal vez podría darme otra forma de manejar esto, gracias

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

0

Parece que desea cancelar cualquier tiempo de espera aún activo cuando se vuelve a hacer clic en el botón. En ese caso, debe almacenar la ID del temporizador en una variable fuera de la función y luego llamar a clearTimeout antes de configurar el nuevo tiempo de espera.

 let timerId; btn.onclick = function() { toast.classList.add('showToast') clearTimeout(timerId); timerId = setTimeout(function() { toast.classList.remove('showToast') }, 3100) }

Tenga en cuenta que, como se muestra arriba, timerId es una variable global, pero esto no es lo ideal. Idealmente, este código está dentro de alguna función que significaría que timerId no contamina el alcance global. Pero eso depende de la información sobre cómo está diseñado su código que no nos muestra.

about 3 years ago · Juan Pablo Isaza Denunciar

0

crear contador usando setInterval()

 var counterHandle; var counter = 0; btn.onclick = function() { counter = 0; clearInterval(counterHandle); toast.classList.add('showToast'); counterHandle = setInterval(()=>{ counter +=1; console.log(counter); if(counter === 3){ toast.classList.remove('showToast'); clearInterval(counterHandle); } }, 1000); }

cuando el botón se presiona muchas veces, el contador siempre será 0 y cuando el contador tiene un valor de 3, el comando se ejecutará

about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda