2010-04-24 3 views
27

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

ответ

22

Этот has been changed с DOM3! В то время как DOM level 2 events specification сделал состояние

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

Токовый DOM level 3 events specification делает Сформулируем

реализация должна определить текущий Таргет candidate event listeners. Это ДОЛЖНО быть списком всех зарегистрированных слушателей событий на текущем целевом в их порядке регистрации. HTML5 определяет порядок прослушивания registered through event handler attributes. [...]

Наконец, реализация должна обрабатывать все кандидата event handlers в порядке [...]

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

+0

Предположительно, если это происходит из HTML5, это означает, что текущие браузеры уже делают это, как вы думаете? – thomasrutter

+1

@thomasrutter: Да, в значительной степени - они только стандартизируют то, что они реализуют. – Bergi

Смежные вопросы