JavaScript 事件处理程序的执行顺序

2023-11-27

有这个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');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 事件处理程序的执行顺序 的相关文章

随机推荐