--- title: 'Element: focus イベント' slug: Web/API/Element/focus_event tags: - API - DOM - Element - Event - Focus - FocusEvent - Reference - イベント translation_of: Web/API/Element/focus_event ---
focus
イベントは、要素がフォーカスを受け取ったときに発生します。このイベントと {{domxref("Element/focusin_event", "focusin")}} との違いは、 focusin
がバブリングを行うのに対し focus
は行わないことです。
focus
の反対は {{domxref("Element/blur_event", "blur")}} です。
バブリング | なし |
---|---|
キャンセル可能 | いいえ |
インターフェイス | {{DOMxRef("FocusEvent")}} |
イベントハンドラープロパティ | {{domxref("GlobalEventHandlers/onfocus", "onfocus")}} |
同期 / 非同期 | 同期 |
Composed | はい |
<form id="form"> <input type="text" placeholder="text input"> <input type="password" placeholder="password"> </form>
const password = document.querySelector('input[type="password"]'); password.addEventListener('focus', (event) => { event.target.style.background = 'pink'; }); password.addEventListener('blur', (event) => { event.target.style.background = ''; });
{{EmbedLiveSample("Simple_example", '100%', '50px')}}
このイベントのイベント委譲を実装する方法は二つあります。 {{Event("focusout")}} イベントを使用するか、 {{domxref("EventTarget.addEventListener()", "addEventListener()")}} の useCapture
引数に true
を設定するかです。
<form id="form"> <input type="text" placeholder="text input"> <input type="password" placeholder="password"> </form>
const form = document.getElementById('form'); form.addEventListener('focus', (event) => { event.target.style.background = 'pink'; }, true); form.addEventListener('blur', (event) => { event.target.style.background = ''; }, true);
{{EmbedLiveSample("Event_delegation", '100%', '50px')}}
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName("UI Events", "#event-type-focus")}} | {{Spec2("UI Events")}} | Added info that this event is composed. |
{{SpecName("DOM3 Events", "#event-type-focus")}} | {{Spec2("DOM3 Events")}} | 初回定義 |
{{Compat("api.Element.focus_event")}}
Window
を対象としたこのイベント: {{domxref("Window/focus_event", "focus")}} イベント