Я столкнулся с странностью при использовании Prototype для обработки событий щелчка. Если вы нажмете кнопку в приведенном ниже коде, появятся три предупреждения: «Нажмите 1», «Нажмите 2» и «Нажмите 3». Современные браузеры будут вызывать слушателей в том порядке, в котором они зарегистрированы, в то время как IE8 (и, возможно, более старые версии IE) будут вызывать их в обратном порядке. Мне это кажется странным, потому что я думал, что Prototype поддерживает и выполняет очередь слушателей, которая должна быть независимой от браузера. Это не так? Если нет, должны ли прослушиватели событий запускаться в определенном порядке или они асинхронны и, следовательно, их порядок не имеет значения?
<button id="button">Click me</button>
<script type="text/javascript">
$('button').observe('click', function(event) {
alert('Click 1');
});
$('button').observe('click', function(event) {
alert('Click 2');
});
$('button').observe('click', function(event) {
alert('Click 3');
});
</script>