Tengo un poco de javascript que oculta un botón si aún no se cumple un conjunto de criterios. (oculta el botón "SIGUIENTE" si el cliente no ha agregado todos los servicios requeridos a su cesta)
Necesito que javascript se active cada vez que el cliente llegue a la cesta y entiendo que esto se puede hacer a través de un detector de eventos.
Para llegar a la cesta, el cliente siempre hará clic en un botón que tiene un nombre de clase de "bookly-hour"
¿Es posible hacer que el javascript se active unos segundos después de hacer clic en el botón "bookly-hour"?
Editar / Actualizar
P:
"¿Puede mostrarnos el código que obtuvo por ahora? ¿Tiene todo el código que debe activar el botón, pero no el controlador de eventos de clic de botón?" ...
A:
Así es, tengo el código que el botón necesita para activarse. Necesito ayuda para activarlo cuando se hace clic en el botón. El código:
const sessions = ['session 1', 'session 2', 'session 3']; const searchTarget = document.querySelector('.bookly-cart-step'); const submitButton = document.querySelector('.bookly-next-step'); if (searchTarget.textContent.includes('session')) { if ( !sessions.every(session => searchTarget.textContent.includes(session) ) ) { submitButton.setAttribute('disabled', ''); } else { submitButton.removeAttribute('disabled'); } };
Puede usar la función window.setTimeout , dentro de su controlador onClick
EDITAR:
Para agregar el controlador de eventos de clic que podría hacer
submitButton.addEventListener('click', yourHandler);
Donde yourHandler
es la función que desea activar
Si desea que el código dentro de yourHandler se active unos segundos más tarde, puede hacerlo
submitButton.addEventListener('click', () => window.setTimeout(yourHandler, 5000)); // 5s later
(o coloque setTimeout dentro de la función del controlador)