Порядок прослушивания нескольких событий

Я столкнулся с странностью при использовании 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>
6
задан Brian Tompsett - 汤莱恩 20 July 2019 в 09:22
поделиться