JavaScript 事件处理程序在元素上单独触发的事件的执行顺序,其中两个元素都不是另一个的祖先
有了这个 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()
触发事件的顺序还是随机的?
我问的是记录/标准化的行为,而不是浏览器当前实现的内容。
Having this JS code:
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();
I'm wondering in what order will the alerts show up - will it be in the order the events were triggered by click()
or could it be random?
I'm asking about documented/standardised behaviour, not about what browsers currently implement.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我将是 1 然后是 2 。
http://jsfiddle.net/kkYfX/
I will be 1 and then 2 .
http://jsfiddle.net/kkYfX/
警报将按顺序执行 -
1
,然后2
。这是因为click
事件是同步的(请参阅 此处) - 当发出.click()
时,处理程序将立即运行(查看最后一段此处)。所以这段代码:将产生与以下相同的结果
The alerts will be executed in order -
1
and then2
. This is becauseclick
event is synchronous (see here) - when.click()
is issued the handler will be run immediately (look at the last paragraph here). So this code:will produce the same result as