LoginSignup
1
0

More than 3 years have passed since last update.

JavaScriptでのイベントについて

Posted at

イベントとは

結論、HTML要素に対して処理要求することです。
例えば、
「ユーザーがブラウザ上のボタンをクリックした」
これはクリックしたというのがイベントに当たります。

イベント駆動

JSでは「イベント」が発生したコードが実行される仕組みを持っています。
このイベントを取得するためにはノードに対して処理を書く必要があります。

イベントリスナ

ではどのようにして処理を書くのか。
addEventListenerメソッドを使います

(ノードオブジェクト).addEventListener("イベント名","関数");

これでノードオブジェクトにイベントが起きた時、関数が実行する仕組みです。
実際に具体例でみていきましょう。
JavaScriptPractice.png
このようなウェブページがあるとして、イベントを起こしてみましょう。

let btn = document.querySelector("a#btn-square");

function hello() {
  console.log("Hello world");
}

btn.addEventListener("click", hello);

本来はこれでHello Worldが出力されるはずですが、
以下のようなエラーが出ることもあります。
JavaScriptPractice.png
これはscriptのタグがどこに書いてあるかに関わってきます。
基本的にscriptを読み込む記述はHTMLのheadタグ内に書き込みます。
ここでもプログラミングの原理原則を思い出してみてください。
上から順番に読み込みます。
その際にボタンのコードが読み込まれる前に
イベントを読み込むためのコードが読み込まれてしまうので
エラーが出てしまうと言った現象です。

なので以下のようなメソッドを使いましょう。

window.onload = function() { 処理 };
window.addEventListener('load', function() { 処理 });

2通りのパターンがあります。今回は②の方法を使います。
これはページの読み込みが終わったら実行するようになります。
なので先ほどの記述を以下のように訂正します。

function HelloWithButton() {
let btn = document.querySelector("a#btn-square");

function hello() {
  console.log("Hello world");
}

btn.addEventListener("click", hello);
}

window.addEventListener("load", HelloWithButton);

そうすると、以下の結果になります。
JavaScriptPractice.png
では、手順をまとめます。

まとめ

①DOMツリーからノードを取得
②JSでやりたい処理内容を書く
③イベントを発火でHTMLを動かす

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0