Подтвердить что ты не робот

Обработаны ли обработчики событий в JavaScript?

Если я прикрепляю несколько обработчиков событий к одному событию на одном элементе DOM, можно ли гарантировать, что обработчики событий будут вызваны в том порядке, в котором они были добавлены? Или я не должен полагаться на это поведение?

4b9b3361

Ответ 1

Это было изменено с DOM3! В то время как спецификация событий уровня 2 DOM действительно

Когда событие достигает цели, все прослушиватели событий, зарегистрированные в EventTarget, запускаются. Хотя все EventListeners на EventTarget гарантированно будут вызваны любым событием, которое получено этим EventTarget, не EventTarget никакой спецификации относительно порядка, в котором они получат событие относительно других EventListeners на EventTarget.

Текущая спецификация событий уровня 3 DOM теперь заявляет

Реализация ДОЛЖНА определить текущие целевые потенциальные прослушиватели событий. Это ДОЛЖЕН быть список всех прослушивателей событий, которые были зарегистрированы на текущей цели в порядке их регистрации. HTML5 определяет порядок слушателей, зарегистрированных через атрибуты обработчика событий. [...]

Наконец, реализация ДОЛЖНА обрабатывать все возможные обработчики событий в порядке […]

Однако я больше не могу найти ссылку на это поведение в проекте DOM 4.