有这个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()
还是随机的?
我问的是记录/标准化的行为,而不是浏览器当前实现的内容。
警报将按顺序执行 -
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,然后是2。 http://jsfiddle.net/kkYfX/