jQuery disparar evento personalizado de forma síncrona?

Eu estou usando o método de disparo do jQuery para chamar um evento ... mas ele se comporta de maneira inconsistente. Às vezes chama o evento, às vezes não.

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

ocustom-event tem muitos ouvintes adicionados a ele. É como se o método do gatilho não fosse síncrono, permitindo que owindow.location.href ser alterado antes de executar os eventos. E quando window.location.href é alterado, ocorre uma navegação, interrompendo tudo.

Como posso acionar eventos de forma síncrona?

Usando jQuery 1.8.1.

Obrigado!

EDITAR

Eu descobri que o evento, quando chamado, tem um rastreio de pilha 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)

Isso prova que jQuerytrigger método é assíncrono. (Eu estava errado ... isso só prova que o evento que eu estava chamando tinha uma animação dentro dele e estava chamando a função esperada dentro do retorno de chamada após a animação)

questionAnswers(2)

yourAnswerToTheQuestion