DOM event-Priorität
Welche Reihenfolge sind die Ereignisse in JavaScript behandelt?
Hier sind die Veranstaltungen in alphabetischer Reihenfolge...
- onabort - Laden eines Bildes
unterbrochen - onblur - Ein element den Fokus verliert
- onchange - der Benutzer Die
Inhalt des Feldes - onclick - Maus auf ein Objekt klickt
- ondblclick - Maus einen Doppelklick auf eine
Objekt - onerror - Fehler tritt auf, wenn
laden Sie ein Dokument oder ein Bild - onfocus - Ein element den Fokus erhält
- onkeydown - Eine Taste der Tastatur ist
gedrückt - onkeypress - Eine Taste der Tastatur ist
gedrückt oder gedrückt gehalten - onkeyup - Eine Taste der Tastatur ist
veröffentlicht - onload - Eine Seite oder ein Bild ist
fertig geladen - onmousedown - Eine Maustaste gedrückt wird
gedrückt - onmousemove - bewegen Der Maus
- onmouseout - Die Maus bewegt aus
ein element - onmouseover - Die Maus bewegt wird
über einem element - onmouseup - Eine Maustaste gedrückt wird
veröffentlicht - onreset - Die reset-Taste ist
geklickt - onresize - ein Fenster oder Ein frame ist
geändert - onselect - Text ausgewählt ist
- "onsubmit" - Der submit-button ist
geklickt - onunload - Der Nutzer verlässt die Seite
Welcher Reihenfolge Sie behandelt aus der Ereignis-queue?
Den Vorrang ist nicht first-in-first-out - (FIFO) oder so, glaube ich.
- Vergessen Sie nicht, diese wichtigen Ereignisse:
ondragstart
,ondragover
,ondragend
,ondblclick
,oncontextmenu
Du musst angemeldet sein, um einen Kommentar abzugeben.
War das nicht, soweit ich weiß, explizit definierte in der Vergangenheit. Die verschiedenen Browser sind kostenlos zu implementieren Veranstaltung bestellen aber Sie sehen, passen. Während die meisten nahe genug für alle praktischen Zwecke, es wurden und werden weiterhin einige sonderbare Ausnahmefälle, bei den Browsern etwas abweichen (und natürlich die vielen weiteren Fälle, in denen bestimmte Browser scheitern zu senden, die bestimmte Ereignisse an alle).
Sagte, die HTML 5-Entwurf einer Empfehlung macht ein Versuch, um anzugeben, wie die events werden in die Warteschlange gestellt und ausgelöst - die Ereignis-Schleife:
Beachten Sie, dass das Letzte bisschen: es liegt an der browser-Implementierung, um festzustellen, welche Ereignisse werden gruppiert und in der Reihenfolge ausgeführt, sowie auf die Priorität, die eine bestimmte Art von Ereignis. Daher gibt es wenig Grund zu erwarten, dass alle Browser zu versenden alle Ereignisse, die in einer festen Reihenfolge, die jetzt oder in der Zukunft.
Für alle wollen, um zu wissen, die Abfolge verwandter Ereignisse genannt, bekommen, finden Sie unten. Bisher habe ich nur getestet in Chrome.
click
event, muss ich dann auch Auslöser der vorherigen events (mousedown, ändern, Unschärfe, Fokus, mouseup)?dragstart
passen?Wenn Sie auf den Maus/touch-events, Patrick H. Lauke veröffentlicht hat einen Vortrag über das Thema. Auf jeden Fall ein Interessantes lese – und befasst sich mit all den Eigenheiten der verschiedenen Browser, verschiedene Geräte und verschiedene standards.
Er bündelt auch eine umfassende Reihe von tests.