jQuery disparar evento personalizado de forma sincrónica?

Estoy usando el método de activación de jQuery para llamar a un evento ... pero se comporta de manera inconsistente. A veces se llama al evento, a veces no lo hace.

<a href="#" onclick="
    $(this).trigger('custom-event');
    window.location.href = 'url';
    return false;
">text</a>

loscustom-event ha añadido muchos oyentes. Es como si el método de disparo no fuera síncrono, permitiendo que elwindow.location.href Se modificará antes de ejecutar los eventos. Y cuando se cambia window.location.href, se produce una navegación que interrumpe todo.

¿Cómo puedo activar eventos de forma sincrónica?

Utilizando jQuery 1.8.1.

¡Gracias!

EDITAR

He encontrado que el evento, cuando se llama, tiene un seguimiento de pila como este:

jQuery.fx.tick (jquery-1.8.1.js: 9021)tick (jquery-1.8.1.js: 8499)jQuery.Callbacks.self.fireWith (jquery-1.8.1.js: 1082)jQuery.Callbacks.fire (jquery-1.8.1.js: 974)jQuery.speed.opt.complete (jquery-1.8.1.js: 8991)$ .customEvent (myfile.js: 28)

Esto prueba que jQuerytrigger El método es asíncrono. (Estaba equivocado ... esto solo prueba que el evento al que llamaba tenía una animación en su interior y que estaba llamando a la función esperada dentro de la devolución de llamada después de la animación)

Respuestas a la pregunta(2)

Su respuesta a la pregunta