カテゴリ: 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
TypeScript
TypeScriptでPromiseの型推論をマスター!非同期処理とasync/awaitの基礎講座
New2
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
New3
JavaScript
JavaScriptのBigInt型とは?大きな整数の扱い方と活用例
New4
JavaScript
JavaScriptでスクロール位置を取得・操作する方法を完全解説!scrollTopなどDOM操作入門
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのクロージャーとは?仕組みと実践例をやさしく解説
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptで新しい要素を作成する方法(createElement, appendChildなど)
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptのプロジェクトをtscでビルドする基本操作を解説!初心者にもわかるステップバイステップ
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでフォーム要素を操作するDOMテクニックを初心者向けに徹底解説
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで親要素・子要素・兄弟要素を取得する方法を初心者向けに徹底解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptでnull・undefinedを型ガードするテクニックを徹底解説!初心者でも理解できる安全なコードの書き方
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】