Может кто-нибудь объяснить мне, почему существует разница в порядке выполнения обработчиков событий в зависимости от того, как они были прикреплены? В приведенном ниже примере я использую методы .on()
и .addEventListener()
для обработки определенного события на разных элементах DOM
.
jsfiddle: http://jsfiddle.net/etsS2/
Я думал, что в этом конкретном примере порядок, в котором будут выполняться обработчики событий, будет зависеть от event-bubbling
- так, начиная с исходного события target
и перемещаясь до элемента document
.
document.getElementById('outer').addEventListener('mouseup', function (event) {
//$('#outer').on('mouseup', function (event) {
alert('This alert should not show up!');
}, false);
Если я раскомментирую версию on();
, все работает так, как ожидалось, - есть ли разница в том, как jQuery
обрабатывает события, противоположные обычным JavaScript
?