运行此代码时,为什么首先触发.body事件?
document.addEventListener('click', function() {
console.log('The document was clicked');
});
document.body.addEventListener('click', function() {
console.log('The document body was clicked');
});
答案 0 :(得分:3)
它不运行更快,它运行更快。
事件从您单击的元素起泡,直到事件到达主体(触发主体上的事件侦听器)为止,然后继续冒泡直到到达文档(触发事件监听器的地方)。 / p>
有关更多详细信息,图表以及如何在捕获阶段捕获事件,请参见MDN。
答案 1 :(得分:0)
简单地是因为它们都将被气泡阶段激活,所以它从下到上运行,因此body.listener首先工作,然后document.listener
答案 2 :(得分:-1)
这是由于冒泡。这样想吧
文档 身体 点击
我单击文档正文 在体内注册事件 然后在文档中注册
因此,即使首先将文档代码编写为文档。身体是第一个收到事件的人