
【6日でできるJavaScript入門】イベントハンドラ
ユーザーの操作に応じてJavaScriptを実行するための仕組みがイベントハンドラです。クリックやマウス移動、ページの読み込みなど、特定のタイミングでコードを動かすことで、インタラクティブなWeb体験を実現します。
ここでは、まず「イベントハンドラとは何か」を整理し、代表的な使い方をステップごとに学びます。各節には独立して動かせるサンプルHTMLを用意し、実際の出力結果とタグの詳しい解説を添えています。タイトルや見出しには絵文字を加え、視覚的にポイントを示しています。

1.イベントハンドラとは?
イベントハンドラは、要素やページの状態変化にあわせてJavaScriptを呼び出す仕組みです。以下の表は基本をまとめたものです。。
| 用語 | 説明 |
|---|---|
| イベント | ユーザー操作やページ状態の変化(クリック/読み込み完了など) |
| ハンドラ | そのイベント発生時に実行されるJavaScriptの関数や命令文 |
| イベントハンドラ名 | 属性名としてHTMLタグに記述し、実行タイミングを指定する |
ファイル名: lesson02-1.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>🎯 イベントハンドラ概要サンプル</title>
</head>
<body>
<h1>🔔 イベントハンドラとは?</h1>
<p id="info">ここにイベント発生の情報が表示されます。</p>
<script>
// ページ読み込み時のonload例
window.onload = function() {
document.getElementById('info').textContent = 'ページが読み込まれました。';
};
</script>
</body>
</html>ブラウザの出力例

タグ解説
window.onload: ページ全体が読み込まれたタイミングで実行されるイベントハンドラ。<script>: JavaScriptコードを配置する要素。
2.クリック時にJavaScriptを実行
要素をクリックしたときに動作させたい場合は、onclick イベントハンドラを使います。
| イベントハンドラ名 | 対象 | 説明 |
|---|---|---|
| onclick | 任意の要素 | クリック時に指定したコードを実行 |
ファイル名: lesson02-2.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>🔘 クリックイベントサンプル</title>
</head>
<body>
<h1>👉 ボタンをクリック</h1>
<button id="btn" onclick="document.getElementById('output').textContent = 'クリックされました!';">
クリックしてね
</button>
<p id="output"></p>
</body>
</html>ブラウザの出力例

タグ解説
- <button onclick="...">: ボタン要素にクリック時の処理を直接記述。
- document.getElementById('output').textContent: 要素の内容を変更するDOM操作。
3.マウスの移動時にJavaScriptを実行
マウス操作に応じてコードを動かすには、onmouseover や onmouseout、onmousemove を使用します。
| イベントハンドラ名 | 説明 |
|---|---|
| onmouseover | 要素上にマウスを乗せたとき |
| onmouseout | 要素からマウスを離したとき |
| onmousemove | 要素上でマウスを動かしたとき |
ファイル名: lesson02-3.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>🐭 マウス移動イベントサンプル</title>
</head>
<body>
<h1>🎨 マウスを動かしてみよう</h1>
<div id="box" onmouseover="this.style.backgroundColor='#def'"
onmouseout="this.style.backgroundColor='#f5f5f5'"
onmousemove="document.getElementById('coords').textContent = 'X=' + event.clientX + ', Y=' + event.clientY"
style="width:300px;height:150px;border:1px solid #000;">
<p id="coords">座標を表示</p>
</div>
</body>
</html>ブラウザの出力例
X=123, Y=45 (マウス位置によって変化)

タグ解説
- <div onmouseover="..." onmouseout="..." onmousemove="...">: 複数のイベントを同一要素に指定。
- event.clientX, event.clientY: マウス位置を取得するイベントオブジェクトのプロパティ。
4.その他のイベントハンドラ
ここまでで挙げた以外にも、多彩なイベントハンドラが用意されています。代表的なものをまとめました。
| 分類 | イベントハンドラ名 | 説明 |
|---|---|---|
| ページ操作 | onload | ページ読み込み完了時 |
| onunload | ページ離脱時 | |
| onerror | エラー発生時 | |
| フォーム操作 | onfocus | 要素にフォーカスが移動したとき |
| onchange | 入力内容が変更されたとき | |
| onsubmit | フォームが送信されたとき | |
| キーボード | onkeydown、onkeyup | キーが押された/離されたとき |
| タッチ | ontouchstart | タッチ操作開始時(スマホ・タブレット用) |
ワンポイント
直接HTMLに書く方法は手軽ですが、JavaScriptとHTMLの分離にはイベントリスナー(addEventListener)の利用を検討してください。
まとめ
ここでは、イベントハンドラの基本概念と主要な使い方を学びました。各サンプルを動かし、ユーザー操作に応じた動的な振る舞いを体験したら、次はaddEventListenerによるより拡張性の高い実装方法へ進みましょう。
