【发布时间】:2012-03-19 17:33:38
【问题描述】:
我在使用 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>
【问题讨论】:
标签: javascript prototypejs dom-events