イベントに処理を指定する方法を解説

HOME
更新日:2017.03.02
HOMEJavaScript入門 > イベント処理の指定

イベント処理の指定

このページでは、イベントに処理を指定する方法を見ていきます。

HTMLタグの属性に指定する

今まで、HTMLの属性(onclickやonload等)にJavaScriptの関数を指定していました。 以下のような感じです。最も簡単な指定法です。

<input type="button" value="押して下さい" onclick="fnc()">

DOM要素に指定する

イベント処理はHTMLタグの属性に記述するより、 JavaScriptから指定した方が保守管理が楽になります。 それで今度は、JavaScriptを使ってid属性を付けた要素にイベントを指定する方法を見てみましょう。

以下のスクリプトでは、id属性を付けたdivタグに、 onmouseoverイベントとonmouseoutイベントを指定しました。 文字上にカーソルを乗せると文字列が書き換えられ、 カーソルを外すとさらに文字列が変化します。

<div id="dom">ここにイベントを指定します</div>

<script>
var obj = document.getElementById("dom");

//マウスカーソルが乗った時の処理
function fnc1()
{
  obj.innerHTML = "マウスカーソルが乗りました";
}

//マウスカーソルが外れた時の処理
function fnc2()
{
  obj.innerHTML = "マウスカーソルが外れました";
}

//イベントに関数を指定する
obj.onmouseover = fnc1;
obj.onmouseout  = fnc2;

</script>

<サンプル>文字列にマウスカーソルを合わせると、文字が変化します

ここにイベントを指定します

スクリプトの説明

では上記スクリプトを詳しく見ていきましょう。

divタグにid属性を付ける

<div id="dom">ここにイベントを指定します</div>

最初にdivタグにid属性を付け、属性値を「dom」にしました。 こうすることでJavaScriptを使って操作することができます。 確認したいのは、onmouseoverやonmouseoutといったイベント系の属性が記入されていない点です。 これらはJavaScriptで指定します。

属性値を持つ要素の取得

var obj = document.getElementById("dom");

続いてscriptタグ内を見ていきます。最初にgetElementByIdを使って、id属性値domを持つ要素を取得し、変数objに格納します。

関数fnc1と関数fnc2

function fnc1{ obj.innerHTML= "" }
function fnc2{ obj.innerHTML= "" }

次に、二つの関数が出てきます。関数fnc1はマウスカーソルが乗った時用で、 関数func2はカーソルが外れた時にためのものです。 innerHTMLを使ってタグ内の文字列を書き換えます。

イベントに関数を指定する

obj.onmouseover = fnc1;
obj.onmouseout  = fnc2;

最後に、イベントに関数を指定しました。ここで右辺に注目してください。 指定するのは関数そのもので、「fnc1()」のように括弧付で書いてはいけません。 ここが上記のHTML属性での指定と違うので、気を付けて下さい。


次のページでは、addEventListener()を利用したイベントの登録方法を見ていきます。