イベントとは
入力(インプット)、加工、そして出力(アウトプット)という基本的な処理の流れを説明しました。
それでは、いつその処理をすればいいのでしょうか?
たとえば、kintoneのレコード追加画面を開いたとき日付フィールドに今日から1ヵ月後の日付をセットしたい場合、処理を行うタイミングは「レコード追加画面を開いた時」です。
いつ処理をするのかを決めるきっかけをJavaScriptでは「イベント」と呼びます。
リンクやボタンをクリックしたり、レコードの追加・編集画面を開いたり、またレコードの保存が完了した時などさまざまなタイミングで「イベント」は発生します。
イベントとイベントハンドラー
イベントは、処理を行うタイミングでした。イベントを書くとき一緒に覚えておきたいのが、イベントハンドラーです。
イベントハンドラーとは、特定のイベントに反応して処理を行うものです。イベントを受けて処理につなげます。
また、イベントハンドラーには、関数を登録できます。
イベントの書き方
イベントに関数を紐付けることによって処理が実行されます。
JavaScriptのイベントの書き方は次の2種類に分類できます。
- 要素オブジェクトのonプロパティとして指定する方法
- addEventListener() 関数を使って指定する方法
ここではJavaScriptのイベントの書き方について学習しましょう。
1. 要素オブジェクトのonプロパティとして指定する方法
1つ目は、要素オブジェクトのonプロパティにイベント処理を記述する方法です。
記述方法は次のとおりです。
要素オブジェクト.onプロパティ = 関数名;
ここでは「クリックしたとき」を例に書き方を学びましょう。
お知らせアプリでレコードの既読チェックカスタマイズをしてみよう
の見出しの「概要」をクリックしたとき、コンソールにメッセージを表示します。
上記記事を開いた状態で、コンソールに直接JavaScriptでプログラムを書いてみます。
開発者ツールのコンソールを開き
、>
の横に次のコードを入力しましょう。
|
|
入力し終えたらEnter
(Macはreturn
)キーを押します。
見出しの「概要」をクリックしましょう。
次のようにコンソールに「概要がクリックされました」と表示されたら成功です。
解説
on○○
は、○○
した時に対しての処理をするイベントです。
今回はonclick
を使用しましたが、他にもonmouseover
はマウスオーバー時の処理、onload
はページ表示時の処理を実行できます。
document.getElementById()
で、HTML内のid要素を指定します。
その要素をクリックしたときの処理は() => {}
内に記述します。
2. addEventListener() 関数を使って指定する方法
2つ目は、addEventListener() 関数を使用する方法です。
記述方法は次のとおりです。
要素オブジェクト.addEventListener('イベントの種類', 関数名, false);
それでは同じように「クリックしたとき」を例に書き方を学びましょう。
先ほど使った、
お知らせアプリでレコードの既読チェックカスタマイズをしてみよう
の見出しの「概要」を今回も使います。
上記記事を開いた状態で、コンソールに直接JavaScriptでプログラムを書いてみます。
前回のコードが適用されているので、F5
キー(Macはcommand + R
)を押して画面をリフレッシュしてから、
開発者ツールのコンソールを開き
、>
の横に次のコードを入力しましょう。
|
|
入力し終えたらEnter
(Macはreturn
)キーを押します。
見出しの「概要」をクリックしましょう。
次のようにコンソールに「概要がクリックされました」と表示されたら成功です。
解説
addEventListener() 関数の引数には次の情報を指定します。
- 第1引数:イベントの種類
- 第2引数:イベントハンドラーとなる関数名
「イベントの種類」では要素オブジェクトのonプロパティとして指定する方法とは異なり、イベントの種類の前にはon
は付けません。
第3引数はイベント伝搬の方式をtrue / false
で指定します。通常はfalseを指定しておきましょう。
補足
addEventListener() とonプロパティの違い
いくつかの違いがありますが、大きな違いは、1つの要素に複数のイベントを登録できるかです。
addEventListener()
関数を利用する場合、1つの対象に対して複数の異なるイベントを設定できます。
onプロパティの場合は、1つのイベントしか設定できません。
つまりaddEventListener()
関数では追加、onプロパティは上書きということになります。
よく使うイベント一覧
JavaScriptでは、さまざまなイベントが用意されています。よく使うイベントとそのイベントが発生するタイミングを紹介します。
イベント | イベントハンドラー | 発生するタイミング |
---|---|---|
click | onclick | クリックしたとき |
change | onchange | 内容が変更されたとき |
mouseover | onmouseover | マウスポインタが重なったとき |
load | onload | 読み込みが完了したとき |
click
clickは、マウスクリック時の処理をするイベントハンドラーです。
たとえば、ボタンをクリックしたタイミングで処理を実行する場合に使います。
先ほどイベントの書き方でも出てきたとおりです。
|
|
change
changeは、入力欄や選択肢が変更されたときに発生するイベントです。
HTMLでいうと、<input>
、<select>
、および<textarea>
要素に対応しています。
|
|
mouseover
mouseoverは、マウスポインターが要素と重なったときに発生するイベントです。
たとえば、画像にマウスが重なったタイミングで処理を実行する場合に使います。
|
|
load
loadは、読み込みが完了したときに発生するイベントです。
たとえば、ページを読み込んだタイミングで処理を実行する場合に使います。
|
|
また画像の要素に対しても動作します。
|
|
まとめ
ここまでイベントや、イベントの書き方について学習しました。
実際にkintoneでイベントを使う場合は、kintone独自の書き方があります。
kintone独自の書き方については、はじめようkintone APIで学習します。
次回は
ライブラリ
について学習しましょう。