カテゴリ: JavaScript 更新日: 2026/02/14

JavaScriptのイベント処理Tips!実務で役立つ便利テクニック集

JavaScriptのイベント処理Tips!実務で役立つ便利テクニック集
JavaScriptのイベント処理Tips!実務で役立つ便利テクニック集

先生と生徒の会話形式で理解しよう

生徒

「イベント処理をもっと効率的に書くコツや便利なテクニックはありますか?」

先生

「はい、JavaScriptのイベント処理にはいくつかの実務で役立つテクニックがあります。効率的に書くことで、コードが読みやすくなり、バグも減ります。」

生徒

「具体的にはどんな方法がありますか?」

先生

「順番に、基本的な考え方から応用テクニックまで解説していきましょう。」

1. イベント委譲(Event Delegation)を使う

1. イベント委譲(Event Delegation)を使う
1. イベント委譲(Event Delegation)を使う

イベント委譲とは、親要素にイベントをまとめて設定し、子要素で発生したイベントを処理する方法です。動的に生成される要素にも対応でき、複数のイベントリスナーを登録する手間を減らせます。


const list = document.getElementById("itemList");

list.addEventListener("click", (event) => {
  if (event.target.tagName === "LI") {
    console.log(event.target.textContent + "がクリックされました");
  }
});

このように書くことで、後から追加したリスト項目でもクリックイベントが機能します。

2. 複数関数を一度に実行する

2. 複数関数を一度に実行する
2. 複数関数を一度に実行する

1つのイベントで複数の処理を行いたい場合、関数をまとめて呼び出す方法があります。これにより、コードが整理され、保守性が高くなります。


function func1() { console.log("処理1"); }
function func2() { console.log("処理2"); }

button.addEventListener("click", () => {
  func1();
  func2();
});

3. Debounceでイベント発火を制御する

3. Debounceでイベント発火を制御する
3. Debounceでイベント発火を制御する

スクロールや入力などで頻繁にイベントが発火するとパフォーマンスが悪化します。debounceという方法で、処理の発火を一定時間遅らせることができます。


function debounce(func, delay) {
  let timeout;
  return function() {
    clearTimeout(timeout);
    timeout = setTimeout(func, delay);
  };
}

const input = document.getElementById("search");
input.addEventListener("input", debounce(() => {
  console.log("検索処理を実行");
}, 300));

これで、ユーザーが入力を止めてから処理が実行されます。

4. Throttleでイベント頻度を制御する

4. Throttleでイベント頻度を制御する
4. Throttleでイベント頻度を制御する

スクロールやウィンドウリサイズでイベントが連続して発生する場合は、throttleを使って処理を一定間隔に制御します。これにより、重い処理でも安定して動作します。


function throttle(func, limit) {
  let inThrottle;
  return function() {
    if (!inThrottle) {
      func();
      inThrottle = true;
      setTimeout(() => inThrottle = false, limit);
    }
  };
}

window.addEventListener("resize", throttle(() => {
  console.log("リサイズ処理");
}, 500));

5. onceオプションで1回だけイベントを実行

5. onceオプションで1回だけイベントを実行
5. onceオプションで1回だけイベントを実行

イベントリスナーを1回だけ実行したい場合、once: trueオプションを使うと簡単です。これにより不要なイベント登録を減らせます。


button.addEventListener("click", () => {
  console.log("この処理は1回だけ実行されます");
}, { once: true });

6. イベントオブジェクトで詳細情報を取得

6. イベントオブジェクトで詳細情報を取得
6. イベントオブジェクトで詳細情報を取得

イベントオブジェクトを利用すると、クリックされた要素やマウス座標などを取得できます。これにより、より柔軟な処理が可能です。


button.addEventListener("click", (event) => {
  console.log("クリック位置:", event.clientX, event.clientY);
  console.log("対象要素:", event.target);
});

7. 実務で役立つテクニックまとめ

7. 実務で役立つテクニックまとめ
7. 実務で役立つテクニックまとめ
  • イベント委譲で動的要素にも対応
  • 複数関数をまとめて実行してコードを整理
  • Debounceで入力やスクロールの負荷を軽減
  • Throttleで連続イベントを制御
  • onceオプションで1回だけイベント処理
  • イベントオブジェクトを活用して柔軟な処理

これらを活用することで、実務で効率的で安全なJavaScriptのイベント処理が可能になります。

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptでオブジェクト指向のカプセル化を学ぶ!初心者でもわかるクラスとプロパティの保護方法
New2
TypeScript
TypeScriptのEnum(列挙型)の使い方を解説!初心者でもわかる定数のグループ化
New3
TypeScript
TypeScriptとは?JavaScriptとの違いと導入メリットを徹底解説
New4
TypeScript
TypeScriptでExpressを初期化する方法!初心者向けバックエンド開発環境構築の完全ガイド
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの現在日時を取得する方法を完全ガイド!初心者でもわかるDate.now()とnew Date()
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptで使える基本の型一覧(string, number, booleanなど)
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでクエリパラメータを取得する方法を完全解説 URLSearchParamsの使い方を初心者向けに丁寧に説明
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptで最初に覚えたい基本構文まとめ
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptとEmotion/styled-componentsの型付けパターン徹底解説!React開発の基本