Pregunta ¿Los controladores de eventos en JavaScript se llaman en orden?


Si adjunto múltiples manejadores de eventos a un solo evento en un solo elemento DOM, ¿se garantiza que los manejadores de eventos se invocaron en el orden en que se agregaron? ¿O no debería confiar en este comportamiento?


32
2018-04-24 20:58


origen


Respuestas:


Esta ha sido cambiado con DOM3! Mientras que la Especificación de eventos DOM nivel 2 hizo estado

Cuando el evento alcanza el objetivo, cualquier oyente de evento registrado en el    EventTarget   son disparados Aunque todo EventListeners   sobre el EventTarget están garantizados para ser activados por cualquier evento que   es recibido por ese EventTarget, sin especificación se hace como al   orden en el cual recibirán el evento con respecto al otro    EventListeners sobre el EventTarget.

La corriente Especificación de eventos DOM nivel 3 ahora dice

La implementación DEBE determinar el objetivo actual candidato   oyentes de eventos.   Esta DEBE ser la lista de todos los oyentes de eventos que se han registrado   en el objetivo actual en su orden de registro. HTML5   define el orden de los oyentes registrado a través del controlador de eventos   atributos.   [...]

Finalmente, la implementación DEBE procesar a todos los candidatos evento   manejadores en orden [...]

Sin embargo, no puedo encontrar una referencia a este comportamiento en el Borrador del DOM 4 nunca más.


24
2017-07-29 13:39