ボタンをクリックしても何も起きない(addEventListener)

JavaScript 📅 2026年5月1日 👤 学習者さん

💬 質問

addEventListener でボタンにクリックイベントを設定したのですが、クリックしても何も起きません。エラーも出ていないようです。

✅ 回答

イベントが動かない原因を順番に確認しましょう。

原因1:script タグが HTML 要素より前にある

JavaScriptが実行される時点で、まだボタンのHTMLが読み込まれていないと null になります。

<!-- ❌ script が先にあると要素が見つからない -->
<script>
  document.getElementById('btn').addEventListener('click', greet);
  // → エラー: Cannot read properties of null
</script>
<button id="btn">押す</button>

<!-- ✅ script を body の最後に置く -->
<button id="btn">押す</button>
<script>
  document.getElementById('btn').addEventListener('click', function() {
    alert('クリックされた!');
  });
</script>

原因2:id 名が間違っている

HTMLの id と JavaScript の getElementById の文字列が完全に一致しているか確認しましょう。大文字/小文字も区別されます。

原因3:関数を () 付きで渡してしまっている

// ❌ () をつけると「すぐ実行」されてしまう
btn.addEventListener('click', greet());

// ✅ 関数名だけ渡す(クリック時に実行される)
btn.addEventListener('click', greet);

まとめ:script は body の最後に置き、id 名を正確に合わせ、関数は () なしで渡しましょう。開発者ツールの Console タブでエラーが出ていないかも確認してください。

解決しなかった?

エンジニアに質問する →
← 他の質問を見る

⚠️ 関連するエラー

📖 関連する用語