JavaScriptのDOMイベントとは?基本の使い方をサンプルコードで解説
JavaScriptでは、ユーザーがマウスをクリックしたとき、画像の読み込みが完了したとき、HTMLフォームが送信されたときなど、ページ上で何らかの出来事(イベント)が発生したタイミングでスクリプトを実行できます。イベントはDocument Object Model(DOM)Level 3の一部として定義されており、すべてのHTML要素には対応するイベントが用意されていて、それらをきっかけにJavaScriptコードを呼び出すことができます。
イベントハンドラの基本例
まずは最もシンプルな例として、イベントハンドラから関数を呼び出してテキストを書き換えるコードを見てみましょう。次のサンプルでは、段落をクリックすると myEvent 関数が実行され、表示されているテキストが「Welcome!」に置き換わります。
<!DOCTYPE html>
<html>
<body>
<p onclick="myEvent(this)">クリックしてください</p>
<script>
function myEvent(id) {
id.innerHTML = "Welcome!";
}
</script>
</body>
</html>
代表的なイベントタイプ
ここからは、イベントとJavaScriptの関係をつかむために、特によく使われるイベントタイプの例をいくつか紹介します。
onclickイベント
onclickは最も使用頻度の高いイベントタイプで、ユーザーがマウスの左ボタンをクリックした瞬間に発生します。入力内容のバリデーション(検証)や警告メッセージの表示など、さまざまな処理をこのイベントに結び付けることができます。
次の例では、ボタンをクリックすると sayHello 関数が呼び出され、アラートダイアログが表示されます。
<html>
<head>
<script>
function sayHello() {
alert("こんにちは世界");
}
</script>
</head>
<body>
<p>下のボタンをクリックして結果を確認してください</p>
<form>
<input type="button" onclick="sayHello()" value="あいさつする" />
</form>
</body>
</html>
onmouseover・onmouseoutイベント
この2つのイベントタイプを組み合わせると、画像やテキストに対して手軽に演出効果を加えられます。onmouseoverはマウスカーソルが要素の上に乗った瞬間に発生し、onmouseoutは要素からカーソルが離れた瞬間に発生します。
次の例では、div要素の上にマウスを乗せると「マウスオーバー」、外れると「マウスアウト」というテキストが表示されます。
<html>
<head>
<script>
function over() {
document.write("マウスオーバー");
}
function out() {
document.write("マウスアウト");
}
</script>
</head>
<body>
<p>枠内にマウスカーソルを入れて結果を確認してください</p>
<div onmouseover="over()" onmouseout="out()">
<h2>これはdiv要素の中です</h2>
</div>
</body>
</html>
補足:addEventListenerによる現代的な書き方
HTML属性に直接イベントハンドラを記述する方法は手軽ですが、現在では addEventListener メソッドを使ってJavaScript側でイベントを登録するスタイルが主流になっています。HTMLとロジックを分離できるほか、1つの要素に複数のハンドラを登録できるのも大きなメリットです。
document.getElementById("btn").addEventListener("click", function () {
alert("こんにちは世界");
});
まとめ
DOMイベントを活用すれば、クリックやマウス操作といったユーザーのアクションに応じて、ページの挙動を柔軟に制御できます。まずは onclick などの基本イベントから試してみて、慣れてきたら addEventListener を使った実装にも挑戦してみてください。
-
JavaScriptのPromiseとは?非同期処理の基本をわかりやすく解説
JavaScriptのPromiseとは?Promise(プロミス)は、JavaScriptで非同期処理を扱うためのオブジェクトです。Promiseが生成された時点では、最終的な結果の値はまだ確定していません。処理が完了した将来のタイミングで、成功または失敗の結果を受け取ることができます。これにより、APIからのデータ取得やファイル読み込みなど、時間のかかる処理を効率的に記述できます。Promiseの3つの状態Promiseは、必ず以下の3つの状態のいずれかを持ちます。pending(待機):初期状態。処理がまだ完了していない状態です。fulfilled(履行):処理が正常に完了し、結果の値が
-
C#のイベントとは?基本の仕組みと使い方を実例付きで解説
C#におけるイベント(Event)とは、キーの押下、マウスのクリックや移動といったユーザー操作、あるいはシステムが生成する通知など、プログラムの外部で発生した「出来事」を表す仕組みです。イベントはクラス内で宣言され、発生(raise)されます。そして、デリゲート(delegate)を介してイベントハンドラと関連付けられます。この関連付けは、同じクラス内でも別のクラスでも行うことが可能です。イベントを保持しているクラスは、そのイベントを外部に公開(パブリッシュ)する役割を担います。イベント宣言の基本手順クラス内でイベントを宣言するには、まずイベント用のデリゲート型を定義する必要があります。例えば