JavaScript-event-Handler die Ausführung, um
Dass diese JS-code:
document.getElementById('e1').addEventListener('click', function(){alert('1');}, false);
document.getElementById('e2').addEventListener('click', function(){alert('2');}, false);
document.getElementById('e1').click();
document.getElementById('e2').click();
Frage ich mich in welcher Reihenfolge werden die Warnungen zeigen, - wird es in der Reihenfolge in der die Ereignisse ausgelöst wurden, die durch click()
oder könnte es zufällig sein?
Ich Fragen dokumentiert/standardisiert Verhalten, nicht darum, was Browser derzeit implementieren.
click();
wird nicht funktionieren, durch die Art und Weise; das ist nicht der Weg, um Ereignisse auszulösen. Sie benötigencreateEvent
,initEvent
unddispatchEvent
.- Nein, habe ich nicht. w3.org/TR/DOM-Level-2-HTML/html.html#ID-2651361
- In diesem Fall okay, aber auf diese Art von Ereignisse auslösen, ist weit von universal, um die Verfügbarkeit mit Bezug auf alle Ereignisse, auf alle Elemente. Die einzige zuverlässige Methode, um Ereignisse auszulösen, ist die Verwendung der drei Methoden, die ich oben erwähnt habe.
- Eigentlich in HTML5 können Sie
click
auf ein element w3.org/TR/html5/elements.html#htmlelement Aber ich Stimme zu, dass es nicht universell im Browser jetzt. - Oh, das wusste ich nicht. Danke!
- Noch ist das erstellen/Versand event.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alerts ausgeführt werden soll, um -
1
und dann2
. Dies ist, weilclick
Ereignis ist synchron (siehe hier) - wenn.click()
ausgegeben wird, wird der handler sofort ausgeführt werden (betrachten Sie den letzten Absatz hier). Also dieser code:produzieren das gleiche Ergebnis wie
Werde ich 1 und dann 2 .
http://jsfiddle.net/kkYfX/
click()
ausgeführt wird. Sie laufen "einige Zeit" nach, die - möglicherweise in einer anderen Reihenfolge.