使用“.click()”触发事件侦听器是异步的吗?
Is triggering event listeners using ".click()" asynchronous?
我有以下代码(我的 HTML 中有一个 <button id="7">
):
(function() {
'use strict';
document.getElementById(7).addEventListener("click", function(){
console.log('clicked');
})
console.log('before');
document.getElementById(7).click();
console.log('after')
}());
当这个 运行s 在 Firefox 41 控制台中时,我会期望
之前
在
之后
单击
因为代码会运行同步,然后在完成脚本后响应事件队列中的点击事件。相反,我得到
之前
点击
在
之后
这表明事件正在同步处理?
是的,click
method 同步执行 运行 激活步骤,包括立即触发(创建和调度)事件。它没有被放入事件循环队列中。
我有以下代码(我的 HTML 中有一个 <button id="7">
):
(function() {
'use strict';
document.getElementById(7).addEventListener("click", function(){
console.log('clicked');
})
console.log('before');
document.getElementById(7).click();
console.log('after')
}());
当这个 运行s 在 Firefox 41 控制台中时,我会期望
之前
在
之后
单击
因为代码会运行同步,然后在完成脚本后响应事件队列中的点击事件。相反,我得到
之前
点击
在
这表明事件正在同步处理?
是的,click
method 同步执行 运行 激活步骤,包括立即触发(创建和调度)事件。它没有被放入事件循环队列中。