元素:focus 事件
语法
在诸如addEventListener()
之类的函数中使用事件名称,或设置事件处理程序属性。
js
addEventListener("focus", (event) => {});
onfocus = (event) => {};
事件类型
一个FocusEvent
。继承自UIEvent
和Event
。
事件属性
示例
简单示例
HTML
html
<form id="form">
<label>
Some text:
<input type="text" placeholder="text input" />
</label>
<label>
Password:
<input type="password" placeholder="password" />
</label>
</form>
JavaScript
js
const password = document.querySelector('input[type="password"]');
password.addEventListener("focus", (event) => {
event.target.style.background = "pink";
});
password.addEventListener("blur", (event) => {
event.target.style.background = "";
});
结果
事件委托
有两种方法可以为该事件实现事件委托:使用focusin
事件,或将addEventListener()
的useCapture
参数设置为true
。
HTML
html
<form id="form">
<label>
Some text:
<input type="text" placeholder="text input" />
</label>
<label>
Password:
<input type="password" placeholder="password" />
</label>
</form>
JavaScript
js
const form = document.getElementById("form");
form.addEventListener(
"focus",
(event) => {
event.target.style.background = "pink";
},
true,
);
form.addEventListener(
"blur",
(event) => {
event.target.style.background = "";
},
true,
);
结果
规范
规范 |
---|
UI 事件 # event-type-focus |
HTML 标准 # handler-onfocus |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
HTMLElement.focus()
方法- 相关事件:
blur
、focusin
、focusout
- 此事件在
Window
上针对:focus
事件 - 聚焦:focus/blur