JavaScriptでクリックイベントを使いこなす!5つの使い方とサンプルコード

JavaScriptでクリックイベントを活用する方法を学ぶJS
この記事は約7分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、JavaScriptでクリックイベントを使いこなすことができるようになります。

初心者でも分かりやすいサンプルコードや注意点を紹介していますので、ぜひ参考にしてみてください。

●JavaScriptのクリックイベントとは

クリックイベントは、ウェブページ上の要素をクリックしたときに発生するイベントです。

JavaScriptを使って、クリックイベントを検出して特定の処理を実行することができます。

●クリックイベントの使い方

ここでは、クリックイベントを使った3つの基本的な使い方とサンプルコードを紹介します。

○サンプルコード1:ボタンをクリックしてアラートを表示する

このコードでは、ボタンをクリックするとアラートが表示されるサンプルを紹介しています。

この例では、ボタンのクリックイベントに関数showAlert()を紐づけて、アラートを表示しています。

<!DOCTYPE html>
<html>
<head>
<script>
function showAlert() {
  alert("ボタンがクリックされました!");
}
</script>
</head>
<body>

<button onclick="showAlert()">クリックしてください</button>

</body>
</html>

○サンプルコード2:画像をクリックして別の画像に切り替える

このコードでは、画像をクリックすると別の画像に切り替わるサンプルを紹介しています。

この例では、画像のクリックイベントに関数changeImage()を紐づけて、画像のsrc属性を切り替えています。

<!DOCTYPE html>
<html>
<head>
<script>
function changeImage() {
  document.getElementById("myImage").src = "another_image.jpg";
}
</script>
</head>
<body>

<img id="myImage" src="sample_image.jpg" onclick="changeImage()">

</body>
</html>

○サンプルコード3:クリックイベントを使ったアコーディオンメニュー

このコードでは、クリックイベントを使ってアコーディオンメニューを作成するサンプルを紹介しています。

この例では、メニュー項目のクリックイベントに関数toggleContent()を紐づけて、表示内容を切り替えています。

<!DOCTYPE html>
<html>
<head>
<style>
.accordion {
  cursor: pointer;
}
.content {
  display: none;
}
</style>
<script>
function toggleContent(event) {
  var content = event.nextElementSibling;
  content.style.display = content.style.display === "block" ? "none" : "block";
}
</script>
</head>
<body>

<h3 class="accordion" onclick="toggleContent(this)">メニュー1</h3>
<div class="content">
  <p>メニュー1の内容です。</p>
</div>

<h3 class="accordion" onclick="toggleContent(this)">メニュー2</h3>
<div class="content">
  <p>メニュー2の内容です。</p>
</div>

</body>
</html>

●応用例とサンプルコード

○サンプルコード4:クリックした要素の情報を取得する

このコードでは、クリックした要素の情報を取得するサンプルを紹介しています。

この例では、クリックイベントのイベントオブジェクトからクリックされた要素の情報を取り出しています。

<!DOCTYPE html>
<html>
<head>
<script>
function showElementInfo(event) {
  var target = event.target;
  alert("クリックされた要素: " + target.tagName + "\nID: " + target.id);
}
</script>
</head>
<body onclick="showElementInfo(event)">

<h1 id="header">クリックして情報を表示</h1>
<button id="button">ボタン</button>

</body>
</html>

○サンプルコード5:クリックイベントを使ったドラッグアンドドロップ機能

このコードでは、クリックイベントを使ってドラッグアンドドロップ機能を実装するサンプルを紹介しています。

この例では、マウスダウンイベントとマウスアップイベントを利用して、ドラッグ可能な要素を作成しています。

<!DOCTYPE html>
<html>
<head>
<style>
.draggable {
  width: 100px;
  height: 100px;
  background-color: red;
  position: absolute;
  cursor: move;
}
</style>
<script>
var draggedElement = null;
var offsetX = 0;
var offsetY = 0;

function onMouseDown(event) {
  if (event.target.classList.contains("draggable")) {
    draggedElement = event.target;
    offsetX = event.clientX - draggedElement.offsetLeft;
    offsetY = event.clientY - draggedElement.offsetTop;
  }
}

function onMouseUp() {
  draggedElement = null;
}

function onMouseMove(event) {
  if (draggedElement) {
    draggedElement.style.left = event.clientX - offsetX + "px";
    draggedElement.style.top = event.clientY - offsetY + "px";
  }
}

document.addEventListener("mousedown", onMouseDown);
document.addEventListener("mouseup", onMouseUp);
document.addEventListener("mousemove", onMouseMove);
</script>
</head>
<body>

<div class="draggable"></div>

</body>
</html>

●注意点と対処法

クリックイベントのバブリングへの注意

クリックイベントは親要素に伝播するため、意図しない要素でイベントが発火することがあります。

イベントオブジェクトのstopPropagation()メソッドを使って、イベントの伝播を止めることができます。

クリックイベントとタッチイベントの違いへの注意

スマートフォンやタブレットなどのタッチデバイスでは、タッチイベントが発火します。

クリックイベントとタッチイベントを両方サポートするために、イベントリスナーを追加する際に、タッチイベントも考慮に入れる必要があります。

まとめ

本記事では、クリックイベントを利用したサンプルコードを5つ紹介しました。

クリックイベントはWebページ上でのインタラクションを実現するために重要な要素です。

ただし、クリックイベントのバブリングや、クリックイベントとタッチイベントの違いなどに注意して、実装を行うことが重要です。

これらの注意点を把握し、適切に対処しながら、クリックイベントを活用してみてください。