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

180
Views
Abrir ventana emergente/modal dependiendo de setTimeout/Click de botón usando Javascript

Tengo 2 ventanas emergentes en la misma página web.

  1. Cuando alguien haga clic en el enlace "Comprar ahora", se abrirá la "Alerta de compra ahora". Y sé que esto funciona bien con el evento onclick.

  2. Cuando el usuario no hace clic en el botón "Comprar ahora" dentro de X segundos (me estoy tomando 5 segundos en mi ejemplo), entonces debería aparecer la alerta "Emergente de comentarios". Utilicé setTimeout para mostrar la ventana emergente, pero no quiero que aparezca la "Ventana emergente de comentarios" si alguien ya ha hecho clic en el enlace "Comprar ahora".

En este momento, si hago clic en "Comprar ahora", recibo una alerta de "Comprar ahora" y también "Ventana emergente de comentarios".

Quiero mostrar solo una ventana emergente basada en mi acción -> Si hago clic en "Comprar ahora", luego en la alerta Comprar ahora y si no hago clic en el enlace Comprar ahora, de forma predeterminada, "Alerta emergente de comentarios"

¿Cómo puedo dejar de mostrar la "ventana emergente de comentarios" al hacer clic en el botón "Comprar ahora"? Se agradece la ayuda (Nota: probé clearInterval pero no tuve suerte :'( )

 function func1() { alert("Buy Now Popup"); } const popup = document.querySelector(".popup"); window.onload = function () { setTimeout(function () { alert("Feedback Popup"); }, 5000); };
 <header> <h1>Modal Popup</h1> </header> <div> <a href="#" class="modalButton" data-popup="popupOne" onclick="func1()">Model Popup</a> </div>

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Este es un pequeño ejemplo de uso de lo que describiste.

El fondo azul aparecerá en 5 segundos si no hace clic en el botón, pero cada clic en el botón restablecerá la hora.

 var btnTimeout = null; function resetTimeout(){ btnTimeout = setTimeout(() => { // do whatever you want to do when time comes document.body.style.background = "blue"; }, 5 * 1000); // example of 5 seconds for faster response (change to 60) } function doSomething(){ if(btnTimeout){ clearTimeout(btnTimeout); } resetTimeout(); // do whatever you want to do when click the btn document.body.style.background = "red"; } resetTimeout();
 <button onclick="doSomething()">Buy now (prevent blue from showing)</button>

about 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
Show me some job opportunities
There's an error!