javascript - document.activeElement 何时以及如何在焦点事件中设置?
问题描述
我对document.activeElement
焦点事件期间的价值感到困惑。考虑以下示例:
/*
* 1. Click on button to focus it
* 2. Press TAB
*/
const div = document.querySelector('div')
const add = div.addEventListener.bind(div)
add('keydown', () => console.log('Key down', document.activeElement), false)
add('keyup', () => console.log('Key up', document.activeElement), false)
add('focusout', () => console.log('Focus out', document.activeElement), false)
add('focusout', () => requestAnimationFrame(() => console.log('rAF Focus out', document.activeElement)), false)
<div>
<button>Click</button>
<input>
</div>
这导致:
Key down <button>Click</button>
Focus out <body>…</body>
rAF Focus out <input></input>
Key up <input></input>
具体来说,我想知道为什么document.activeElement
设置为body
in focusout
?
解决方案
推荐阅读
- javascript - Java Script - cloneNode(true),克隆太多项目
- r - R:折叠行并根据数据框中的条件更改值
- javascript - 检索 MongoDB 集群的文档
- jenkins - 詹金斯:错误 403 请求中没有包含有效的碎屑:来自 TFS
- jquery - 如何在鼠标悬停/悬停时暂停 setInterval() 函数?
- c++ - 如何在 QT Designer 中放置像素图
- python - Python-如何执行代码并存储到变量中?
- c# - 从 Postman 发送 Json 返回代码 200,从 HttpClient 发送 Json 返回 503(您的分块 POST 数据太大无法上传)
- angular - 从 dom 生成的元素调用组件函数 - 角度
- excel - 选择下拉列表中的箭头时放大