JavaScript事件处理程序执行顺序

时间:2011-08-16 11:03:17

标签: javascript events javascript-events standards

拥有这个JS代码:

document.getElementById('e1').addEventListener('click', function(){alert('1');}, false);
document.getElementById('e2').addEventListener('click', function(){alert('2');}, false);
document.getElementById('e1').click();
document.getElementById('e2').click();

我想知道警报会以什么顺序显示 - 它是按照click()触发事件的顺序还是随机的?

我询问记录/标准化的行为,而不是当前实施的浏览器。

2 个答案:

答案 0 :(得分:2)

警报将按顺序执行 - 1然后2。这是因为click事件是同步的(请参阅here) - 当发出.click()时,处理程序将立即运行(查看最后一段here)。所以这段代码:

document.getElementById('e1').addEventListener('click', function(){alert('1');}, false);
document.getElementById('e2').addEventListener('click', function(){alert('2');}, false);
document.getElementById('e1').click();
document.getElementById('e2').click();
alert('3');

将产生与

相同的结果
alert('1');
alert('2');
alert('3');

答案 1 :(得分:-1)

我将是1然后是2。 http://jsfiddle.net/kkYfX/