ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > JavaScript > 【jQuery】フォーカスされている要素にイベントを発火させるfocus/blur/focusin/focusoutを解説

【jQuery】フォーカスされている要素にイベントを発火させるfocus/blur/focusin/focusoutを解説

JavaScript

2022/05/13

2023/05/08

jQuery focusイベント記事サムネイル

jQueryにはフォーカスを当てたり外したりするだけでイベントが発火するフォーカスイベントがあります。フォーカスイベントには、focus()blur()focusin()focusout()の4種類があります。

この記事では「focus()blur()focusin()focusout()のイベントの使い方」について解説します。記事の後半では、focus()focusin()の違い、blur()focusout()の違いについても解説します。

 

この記事で身につく内容
  • jQueryのfocus()blur()focusin()focusout()イベントの基礎知識
  • focus()focusin()の違い
  • blur()focusout()の違い

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

focus():input要素にフォーカスを当てるとイベント発火

ZeroPlusgate50教材の動画

focus()input要素などにフォーカスを当てたときにイベントが発火します。

focus()の基本書式

$("フォーカス要素").focus();

上の書式にコードを当てはめると次のようになります。

<input type="text" placeholder="focus">
$("input").focus(function () {
  console.log("focus!");
});

出力結果

input要素にフォーカスをあてると、コンソール画面でテキストが出力されます。

ZeroPlusgate50教材の動画

blur():input要素からフォーカスを外したときイベント発火

ZeroPlusgate50教材の動画

blur()はinput要素などからフォーカスが外れたときにイベントが発火します。

blur()の基本書式

$("フォーカス要素").blur();

上の書式にコードを当てはめると次のようになります。

<input type="text" placeholder="blur">
$("input").blur(function () {
  console.log("blur!");
});

出力結果

input要素にフォーカスをあて、そのフォーカスを外すと、コンソール画面でテキストが出力されます。

 

focusin():input要素にフォーカスを当てるとイベント発火

focusin()input要素などにフォーカスを当てたときにイベントが発火します。

focusin()の基本書式

$("フォーカス要素").focusin();

上の書式にコードを当てはめると次のようになります。

  <input type="text" placeholder="focusin">
$("input").focusin(function () {
  console.log("focusin!");
});

出力結果

input要素にフォーカスをあてると、コンソール画面でテキストが出力されます。

イベントの内容としては、focus()と同様の動きになります。

ZeroPlusgate50教材の動画

focusout():input要素からフォーカスを外したときイベント発火

focusout()フォーカスが外れたときにイベントが発火します。

focusout()の基本書式

$("フォーカス要素").focusout();

上の書式にコードを当てはめると次のようになります。

<input type="text" placeholder="focusout">
$("input").focusout(function () {
  console.log("focusout!");
});

出力結果

input要素にフォーカスをあて、そのフォーカスを外すと、コンソール画面でテキストが出力されます。

イベントの内容としては、blur()と同様の動きになります。

ZeroPlusgate50教材の動画

focus()とfocusin()の違い

focus()focusin()はどちらも要素にフォーカスを当てるとイベントが発火します。2つのイベントの違いは、「子要素にイベントが影響するか」という違いがあります。

例えば次のようHTMLのformタグに、focus()イベントとfocusin()イベントを適用します。

<form action="">
  <input type="text" class="form" placeholder="focusとfocusinの違い">
</form>
<div class="focusbox">
  <p>focus</p>
</div>
<div class="focusinbox">
  <p>foucsin</p>
</div>
$("form").focus(function () {
  $(".focusbox").css("background", "red");
});

$("form").focusin(function () {
  $(".focusinbox").css("background", "blue");
});

出力結果

See the Pen juery-focus-focusin by ZeroPlus (@zeroplus-programming) on CodePen.

formタグにフォーカスを当てると、focusin()イベントのCSSメソッドだけ適用されました。

このように、子要素にイベントが影響するかどうかの違いがあります。

focus()とfocusin()の違い

  • focus()は子要素にイベントが影響しない
  • focusin()は子要素にイベントが影響する

 

blurとfocusoutの違い

ZeroPlusgate50教材の動画

blur()focusout()はどちらも要素にフォーカスを当て、そのフォーカスを外すとイベントが発火します。

こちらもfocus()focusin()の場合と同様に、「子要素にイベントが影響するか」という違いがあります。

例えば次のようHTMLのformタグに、blur()イベントとfocusout()イベントを適用します。

<form action="">
  <input type="text" class="form" placeholder="blurとfocusoutの違い">
</form>
$("form").blur(function () {
  $(".blurbox").css("background", "red");
});

$("form").focusout(function () {
  $(".focusoutbox").css("background", "blue");
});
出力結果

See the Pen jQery-blur-focusout by ZeroPlus (@zeroplus-programming) on CodePen.

formタグにフォーカスを当て、そのフォーカスを外すと、focusout()イベントのCSSメソッドだけ適用されました。

blur()とfocusout()の違い

  • blur()は子要素にイベントが影響しない
  • focusout()は子要素にイベントが影響する

 

まとめ

jQueryのfocus()blur()focusin()focusout()の4つのフォーカスイベントは、フォーカスを当てたり外したりするだけでイベントが発火します。focus()focusin()blur()focusout()はそれぞれ似たようなイベントですが、状況に合わせてイベントを使い分けていきましょう。

ZeroPlusgate50教材の動画

jQueryのfocus()/blur()/focusin()/focusout()まとめ

  • focus():要素にフォーカスを当てるとイベント発火
  • blur():要素にフォーカスを当て、そのフォーカスを外すとイベント発火
  • focusin():要素にフォーカスを当てるとイベント発火
  • focusout():要素にフォーカスを当て、そのフォーカスを外すとイベント発火
  • focus()focusin()の違い:focusin()は子要素にイベントが影響する
  • blur()focusout()の違い:focusout()は子要素にイベントが影響する
ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

\ 学んだことをSNSでシェアしよう /

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから