JavaScript講座

イベント

イベントドリブン

イベント(要素に対するキー入力やマウスクリック)が発生すると、それを契機としてあらかじめ指定しておいた処理を行う。

イベントの種類

Load(body要素)
リソースがロードされたとき
Unload(body要素)
リソースがアンロードされたとき
Focus
フォーム要素がフォーカスされたとき
Blur
フォーム要素からフォーカスが外れたとき
Change
フォーム要素の値が変更されたとき
KeyPress
フォーム要素のキー入力されたとき
KeyDown
フォーム要素のキーが押されたとき
KeyUp
フォーム要素のキーが離されたとき
Select
フォーム要素のテキストが選択されたとき

Click
マウスがクリックされたとき

クリックして

Contextmenu
マウスが右クリックされたとき

右クリックして

DblClick
マウスがダブルクリックされたとき

ダブルクリックして

MouseDown
マウスボタンが押されたとき

クリックして

MouseUp
マウスボタンが離されたとき

クリックして

MouseOver
マウスポインタが要素の上に乗ったとき

ポインタをここに

MouseOut
マウスポインタが要素から離れたとき

ポインタをここに

MouseMove
マウスポインタが要素上を移動したとき

ポインタをここに

イベントハンドラ

html側
要素内のon[イベント名]属性に実行したい関数名
JavaScript側
on[イベント名]で行いたい処理を関数として定義
<div onclick="function_name();">
function function_name() {
    //処理;
}

function changeTextA(){
document.getElementById('here').innerHTML='ポインタを外して';
}

function changeTextB(){
document.getElementById('here').innerHTML='ポインタをここに';
}
<p id="here" onMouseOver="changeTextA()" onMouseOut="changeTextB()">ポインタをここに</p>

ポインタをここに

イベントリスナ

html側
要素を定義
JavaScript側
  1. イベント実行時に行いたい処理を関数として定義(必要な場合)
  2. イベントリスナに登録したい処理を具体的に記述し、関数として定義(この中で1.の関数を実引数を代入して呼び出しておく。1.の関数に引数がない場合は不要)
  3. 要素に対して、イベント名とそのイベントから呼び出したい処理内容(2.)を指定する
    DOMでの要素指定.addEventLister(イベント名,呼び出したい処理内容(2.),false);
  4. ※ページ読み込み時に呼び出すためにはさらに
    window.addEventListener('load', function() {3.のイベントリスナ登録},false);
意義
htmlからjavascriptの記述を排除できる
event_listner.html
<div id="no1">
//関数の定義
function function_name(仮引数){
}

//ページ読み込み時(windowに対するloadイベント)に行いたい処理
window.addEventListener('load', function() {
    //イベントリスナに登録したい具体的な処理内容(関数)
    var event_listener_name = function(){
        function_name(実引数);
    }
    //指定の要素(no1)にイベント発生時に指定の処理内容(関数)を呼び出す
    document.getElementById('no1').addEventListener('click',event_listener_name,false);
},false);

/*
window.onload = function(){
   document.getElementById('no1').addEventListener('click',event_listener_name,false);
}
と書いても良い(イベントハンドラを使用)。
*/