Estoy tratando de retrasar el evento predeterminado o eventos en un script jQuery. El contexto es que quiero mostrar un mensaje a los usuarios cuando realizan ciertas acciones (haga clic principalmente) durante unos segundos antes de que se active la acción predeterminada.Suspender evento predeterminado en jQuery
pseudo-código: - El usuario hace clic elemento botón de enlace// - El usuario recibe un mensaje emergente que indica 'Usted está saliendo de sitio' - mensaje permanece en la pantalla de X milisegundos - La acción por defecto (puede ser otro que el href enlace también) dispara
hasta ahora, mis intentos se ven así:
$(document).ready(function() {
var orgE = $("a").click();
$("a").click(function(event) {
var orgEvent = event;
event.preventDefault();
// Do stuff
doStuff(this);
setTimeout(function() {
// Hide message
hideMessage();
$(this).trigger(orgEvent);
}, 1000);
});
});
Por supuesto, esto no funciona como se esperaba, pero pueden mostrar lo que estoy tratando de hacer.
No puedo usar complementos ya que este es un entorno alojado sin acceso en línea.
¿Alguna idea?
¿No volvería a disparar el mismo controlador de clic, incluido el 'event.preventDefault'? – DLH
No funcionará ya que este contexto será la ventana y no el ancla – redsquare
necesita tomar una referencia al delimitador y usar eso dentro de setTimeout. Sin embargo sí, resultaría en un ciclo infinito. Debería desvincular el evento click para que no se ejecute. – redsquare