Ich verwende die jQuery-Trigger-Methode, um ein Ereignis aufzurufen ... aber es verhält sich inkonsistent. Manchmal ruft es das Ereignis auf, manchmal nicht.
%Vor% Dem custom-event
wurden viele Listener hinzugefügt.
Es ist, als ob die Trigger-Methode nicht synchron ist und erlaubt, dass window.location.href
geändert wird, bevor die Ereignisse ausgeführt werden. Und wenn window.location.href geändert wird, findet eine Navigation statt, die alles unterbricht.
Wie kann ich Ereignisse synchron auslösen?
Verwenden von jQuery 1.8.1.
Danke!
BEARBEITEN
Ich habe festgestellt, dass das Ereignis, wenn es aufgerufen wird, einen Stack-Trace wie folgt hat:
Dies beweist, dass jQuery (Ich habe mich geirrt ... das beweist nur, dass das Ereignis, das ich aufgerufen habe, eine Animation enthielt und die erwartete Funktion aufruft innerhalb des Rückrufs nach der Animation) trigger
asynchron ist.
Dokumentation über triggerHandler lesen:
Anstatt das jQuery-Objekt zurückzugeben (um die Verkettung zu ermöglichen), gibt .triggerHandler () den Wert zurück, der vom letzten Handler zurückgegeben wurde, für den die Ausführung ausgelöst wurde. Wenn keine Handler erneut ausgelöst werden, gibt es undefined
zurück
Dieser Punkt in der Dokumentation lässt mich einen solchen Code denken:
%Vor%würde Ihren Anforderungen entsprechen.
Siehe Ссылка
Tags und Links jquery javascript-events sync