JS イベントハンドラを登録する3つの方法と イベント一覧

JS イベントハンドラの基本 Java Script
スポンサーリンク

今回からいよいよ、「イベント」について見ていきます。

今までも例文の中で幾つか使用しているので、すでにお気づきの方も多いと思いますが、JavaScriptでのイベントとは、マウスをクリックしたり、スクロールしたり、ページを読み込んだりするような場合のことを言います。

そういった何かしらのアクションが起きた時に、実行する関数などのことを「イベントハンドラ」と呼びます。

イベントハンドラを登録する方法には、幾つかのパターンがありますので、まずはそれらについて見ていきましょう。

スポンサーリンク

イベントハンドラを登録する

HTML属性

HTMLに直接登録する

イベントハンドラをHTML属性に登録するには、「on + event」で登録することが出来ます。

        <button onclick="alert('イベントハンドラ')" id="eventhtml">
          HTML属性
        </button>

複数の文を記述することも出来ます。

その際は「;」で繋ぎます。

また、HTML文ですので、大文字でも大文字と小文字の組み合わせでも動作しますが、通常は小文字で記述します。

関数を呼び出す

HTML属性に多くのコードを書くのは現実的はないので、関数を作って呼び出すと短いコードで済ますことが出来ます。

        <button onclick="datetime()" id="eventhtml">現在時刻</button>
function datetime() {
  let time = new Date();
  alert(time);
}

DOMプロパティ

基本的な使い方

DOMを使ってイベントハンドラを、「on + event」で登録することが出来ます。

        <input type="button" value="DOMプロパティ" id="dom" />
dom.onclick = function () {
  alert('DOMプロパティ');
};

HTMLの中に、JavaScriptが含まれなくなりました。

既存の関数を使う

既存の関数を使用することも出来ます。

先程紹介した、datetime関数を使用しています。

    <input type="button" value="DOM 既存の関数を使う" id="domf" />
domf.onclick = datetime;

なお、注意点として、「domf.onclick = datetime; 」の「datetime」が「datetime()」となっていないことを確認してください。

記述するのは「関数名」のみとなります。

イベントハンドラの解除

domf.onclick = null;

イベントハンドラを解除するには、「null」を代入します。

addEventListner

基本的な使い方

addEventListner」を使った登録方法を見ていきます。

なお、「addEventListner」を使って登録したイベントハンドラを、「イベントリスナー」と呼ぶ場合があります。

addEventListner( event, listner);

構文は、イベントとlistnerを書くのが基本になります。

最後にoptionsを書くことも出来ますが、通常使うことはないと思います。

ここでの「listner」はコールバック関数のことになります。

さらに詳しい解説は、MDNのサイトで確認してください。

MDN:EventTarget.addEventListener()

    <input type="button" value="イベントリスナー" id="domevent" />
let getTIme = document.getElementById('domevent');
getTIme.addEventListener('click', datetime);

関数は、既存のdatetime関数を使用しています。

複数のイベントハンドラを登録する

    <input type="button" value="複数のイベントリスナー" id="events" />
function greeting1() {
  alert('Hello !');
}
function greeting2() {
  alert('Good Bye !');
}
let greet = document.getElementById('events');
greet.addEventListener('click', greeting1);
greet.addEventListener('click', datetime);
greet.addEventListener('click', greeting2);

こちらのボタンをクリックすると、3つのイベントリスナーが実行されます。

イベントリスナーの解除

greet.removeEventListener('click', greeting2);

イベントリスナーを解除するには、「removeEventListner」を使います。

解除する「addEventListner」と同じように記述してください。

イベント一覧

イベントの種類はとても沢山ありますので、そのすべてを紹介するのは無理なので、代表的なものを以下に紹介します。

すべてのイベントの種類を確認してみたい方は、以下のページで確認してみてください。

MDN:イベントリファレンス

マウスイベント

イベント
(on + event)
動作
clickマウスをクリックした時
contextmenuマウスを右クリックした時
dblclickダブルクリックした時
mouseoverマウスポインタが要素内に来た時
mouseoutマウスポインタが要素外に出た時
mousedownマウスボタンを押している時
mouseupマウスボタンを離した時
mousemoveマウスが移動した時
selectテキストが選択されている時
wheelマウスホイールが回転している時

キーイベント

イベント
(on + event)
動作
keydownキーが押された時
keyupキーが離された時

その他のイベント

イベント
(on + event)
動作
submit送信ボタンが押された時
focusフォーカスされた時
blurフォーカスを失った時
loadページ全体が読み込まれた時
abordエラー以外の原因で読み込みが中止された時
errorエラーが原因で読み込みが中止された時
resetリセットボタンが押された時
スポンサーリンク

あとがき

いかがでしたか。

今回は、「イベントハンドラ」の基本的な使い方について見てきました。

イベントには沢山の種類がありますので、無理に覚える必要はないと思います。

実際にコードを書いていくうちに、よく使うイベントは自然と覚えてしまうと思います。

今回も最後までお読み頂きありがとうございました。

タイトルとURLをコピーしました