イベントは「何かが起きた合図」
イベントとは、ブラウザの中で起きる出来事のことです。ユーザーがボタンをクリックする、キーボードで文字を入力する、ページの読み込みが終わる。こうしたあらゆる出来事がイベントとして発生します。
ブラウザは常にこうした出来事を見張っていて、何かが起きるたびに「今クリックが起きたよ」「入力されたよ」と合図を出します。JavaScriptはこの合図を受け取って、決められた処理を動かします。
イベントリスナーで合図を待つ
イベントが起きても、それを聞く準備をしていなければ何も起きません。そこで使うのが「イベントリスナー」です。これは特定の要素に対して「このイベントが起きたら、この処理を実行してね」と耳を立てておく仕組みです。
たとえばボタンに対してクリックのリスナーを登録すると、ボタンが押されるたびに、あらかじめ用意した関数が呼び出されます。リスナーを設定する=反応の予約をしておく、とイメージすると分かりやすいです。
実務ではどこで関係する?
イベントとはは言葉の意味だけ覚えても、HTML共有の判断にはつながりません。実務では「表示に関係する話か」「検索に関係する話か」「アクセス制限に関係する話か」を分けて考えると整理しやすくなります。
イベントについて迷ったら、相手が安全に開けるか、検索に出してよいか、ブラウザや環境差で壊れないかを順番に確認します。用語理解は、その判断を早くするための道具として使います。手順が決まったら、HTML/ZIPをアップロードして共有URLを発行し、相手に確認してほしい観点と期限を添えて送ります。
- 表示の話: HTML/CSS/JS、パス、ブラウザ互換性を確認する
- 検索の話: noindex、canonical、sitemap、robots.txtの役割を分ける
- 制限の話: URL共有、パスワード、メール認証、会社ドメイン認証を混同しない
- 運用の話: 期限、差し替え、削除、共有メッセージまで決める
代表的なイベントの種類
イベントには非常に多くの種類がありますが、最初は次のようなよく使うものを押さえれば十分です。マウス、キーボード、フォーム、ページの状態に関するものが中心になります。
- click:要素がクリックされたとき
- input:入力欄の値が変わったとき
- submit:フォームが送信されたとき
- keydown:キーが押されたとき
- load:ページや画像の読み込みが終わったとき
イベント処理を書く流れ
実際にクリックへ反応させるには、おおまかに次の順序で進めます。要素を取得し、リスナーを登録し、反応する処理を書く、という三段階です。
- 対象となる要素をJavaScriptで取得する
- addEventListener でイベントの種類を指定する
- イベントが起きたときに動かす関数を渡す
- 関数の中で表示の変更などの処理を書く
- ブラウザで操作して、意図どおり反応するか確認する
イベントオブジェクトに情報が入っている
イベントが発生すると、その出来事の詳しい情報がまとまった「イベントオブジェクト」が処理に渡されます。どの要素で起きたのか、どのキーが押されたのか、といった内容が含まれています。
この情報を使えば、押されたキーによって動きを変えたり、クリックされた場所に応じて処理を分けたりできます。最初は使わなくても動きますが、慣れてくると反応を細かく制御するのに役立ちます。
イベントが分かると動くページが作れる
イベントの考え方をつかむと、静かな表示だけのページから、操作に応えるインタラクティブなページへと一歩進めます。クリックや入力に反応する仕組みは、ほとんどのWebアプリの基礎です。
作ったページの反応を関係者に試してもらいたいときは、ギガサイト便のような認証付きの一時URLで共有すると、相手のブラウザで実際にクリックして確かめてもらえて便利です。
よくある質問
イベントとイベントリスナーの違いは何ですか?
イベントは「クリックされた」などの出来事そのもので、イベントリスナーはその出来事が起きたときに処理を実行するよう待ち構える仕組みです。リスナーがないとイベントが起きても何も動きません。
一つの要素に複数のイベントを設定できますか?
できます。たとえば同じボタンにクリックとマウスオーバーのリスナーを別々に登録すれば、それぞれの操作に応じた処理を動かせます。
イベントオブジェクトとは何ですか?
イベントが起きたときに処理へ渡される、その出来事の詳細情報をまとめたものです。どこで起きたか、どのキーが押されたかなどが含まれます。
初心者はどのイベントから覚えるとよいですか?
まずはclick(クリック)とinput(入力)から始めるのがおすすめです。この二つで反応の基本的な流れが体験でき、他のイベントも同じ要領で扱えるようになります。
実務ではどこで関係する?はHTML共有で必ず理解しておく必要がありますか?
細かな仕様を暗記する必要はありません。ただし、検索に出るか、閲覧者を制限できるか、表示が崩れないかに関わる用語は、共有前の判断材料として押さえておくと安全です。