Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

293
Views
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

over 4 years ago · Juan Pablo Isaza
2 answers
Answer question

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.

over 4 years ago · Juan Pablo Isaza Report

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á

over 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Virtual assistant