Benutzerdefiniertes Ereignis für jQuery-Trigger synchron?

Ich benutze die jQuery-Triggermethode, um ein Ereignis aufzurufen ... aber es verhält sich inkonsistent. Manchmal wird das Ereignis aufgerufen, manchmal nicht.

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

Dascustom-event hat viele Zuhörer hinzugefügt. Es ist so, als ob die Triggermethode nicht synchron ist, wodurch diewindow.location.href geändert werden, bevor die Ereignisse ausgeführt werden. Und wenn window.location.href geändert wird, erfolgt eine Navigation, die alles unterbricht.

Wie kann ich Ereignisse synchron auslösen?

Verwenden von jQuery 1.8.1.

Vielen Dank!

BEARBEITEN

Ich habe festgestellt, dass das Ereignis, wenn es aufgerufen wird, eine Stack-Ablaufverfolgung wie die folgende aufweist:

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)

Dies beweist, dass jQuerytrigger Methode ist asynchron. (Ich habe mich geirrt ... dies beweist nur, dass das Ereignis, das ich aufrief, eine Animation enthielt und die erwartete Funktion innerhalb des Rückrufs nach der Animation aufrief.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage