MENU

JavaScriptでクリックしても動かない?onclickとaddEventListenerの違いを初心者向けに徹底解説!

onclickとaddeventlistenerの解説画像

JavaScriptでクリックしても動かない?onclickとaddEventListenerの違いを初心者向けに徹底解説!

「クリックしたら動くはずなのに…」
JavaScriptでボタンを動かそうとしても、思った通りに動かないことってありますよね。

この記事では、初心者が特につまづきやすい「クリックイベントの書き方」をやさしく解説します。
これを読めば、「ボタンをクリックしても反応しない…」が解決します!


addEventListenerのonclickイベントの解説画像
TOC

🟢 1. onclickがうまく動かない理由

HTMLに直接 onclick を書くと、たしかに動きますが、注意点があります。

See the Pen Untitled by hisayo simizu (@hisayo-simizu) on CodePen.

✅ 小さいコードなら問題ないですが、
❌ 複数のスクリプトがあると上書きされたり、動かなくなったりすることがあります。

また、外部JSファイルに分けたときにエラーが出やすいのも難点です。
基本的には addEventListener を使う方が安全でおすすめです。


🟢 2. addEventListenerでの正しい書き方

HTMLとJavaScriptをきれいに分けて書く方法がこちら👇

See the Pen Untitled by hisayo simizu (@hisayo-simizu) on CodePen.

💬 ポイント
・HTMLとJSを分けて書けるので管理が楽
・複数のイベントを登録できる
・チーム開発や保守でも主流の書き方

👉 現場では「onclick」よりも「addEventListener」が標準です。


🟢 3. ()をつけたら即実行される理由

よくある初心者ミスがこちら👇

btn.addEventListener("click", changeText()); // ❌ 即実行されてしまう
btn.addEventListener("click", changeText);   // ✅ イベント時に実行される

changeText() と書くと「関数をその場で実行」してしまいます。
changeText のように 関数そのものを渡す のが正解です。

🧠 ポイント:
「関数を呼ぶ」ではなく「関数を渡す」と覚える!


🟢 4. 実践:クリックでテキストを切り替える

次は、1回のクリックでテキストを切り替える応用版です👇

See the Pen Untitled by hisayo simizu (@hisayo-simizu) on CodePen.

これでクリックするたびに「こんにちは!」「こんばんは!」が切り替わります✨


🟢 5. よくある質問

Q1. onclickでもいいのでは?

👉 小さいサイトならOKですが、JSを複数書くと上書きされることがあります。
安全に使うなら「addEventListener」をおすすめします。

Q2. scriptはどこに書けばいい?

👉 HTMLの一番下(</body> の直前)に書くのが基本です。
先にHTMLを読み込んでからスクリプトが動くようになります。


🟢 6. まとめ

  • onclick は簡単だけど上書きされたり動かないことがある
  • addEventListener は複数イベントを安全に登録できる
  • () をつけると「即実行」されるので注意!

💬 最後に

「クリックしても動かない…」は誰もが通る道です。
仕組みを理解すれば、動きを自由に作れるようになります!

👉 CodePen公式サイトはこちら


✅ この記事で学べること

  • onclickとaddEventListenerの違い
  • 即実行される原因と対策
  • テキストを切り替える実践コード

これで「クリックしても動かない問題」は卒業です🎓✨

その他関連記事はこちら→Programming Notes

Let's share this post !

Author of this article

初心者の私がコーディングをしていて躓いたところをピックアップして日々の備忘録として発信しています^^
楽しくコーディングを身に着けていけるように日々勉強中です★

Comments

To comment

TOC