ホームページ  >  記事  >  ウェブフロントエンド  >  onclick ハンドラーがリンクをクリックしたときではなく、ページの読み込み時にトリガーされるのはなぜですか?

onclick ハンドラーがリンクをクリックしたときではなく、ページの読み込み時にトリガーされるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-22 07:18:31263ブラウズ

Why Is the onclick Handler Triggered on Page Load Instead of When Clicking the Link?

JavaScript: onclick ハンドラーの予期しない呼び出し

アンカー タグに似ているがカスタム関数を実行するリンクを作成しようとすると、onclickこの関数はページの読み込みと同時に呼び出され、その後のクリックは無効になります。

説明:

提供されたコード スニペット内:

<code class="javascript">var sendNode = document.createElement('a');
sendNode.setAttribute('onclick', secondFunction());</code>

の行setAttribute('onclick', SecondFunction()) が正しくありません。すぐに SecondFunction 関数を実行し、その戻り値 (通常は未定義) を onclick 属性に割り当てます。これにより、2 番目の関数が即座に呼び出されます。

解決策:

2 番目の関数をイベント ハンドラーとして正しく割り当てるには、正しい構文は次のとおりです。

<code class="javascript">var sendNode = document.createElement('a');
sendNode.setAttribute('onclick', secondFunction);</code>

これにより、2 番目の関数を呼び出す前に要素のクリック イベントを待機するイベント リスナーが作成されます。

以上がonclick ハンドラーがリンクをクリックしたときではなく、ページの読み込み時にトリガーされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。