ページの読み込み時に不思議なことにトリガーされる Javascript onclick 関数
onclick イベント リスナーは、関連する要素のクリック時にのみ実行される必要があります。ただし、特定のシナリオでは、ページの読み込み直後に関数が呼び出され、クリック イベントが無効になっていることが観察されます。
この問題は、一般に、onclick 属性を setAttribute('onclick', SecondFunction) として割り当てるときに発生します。 ()) setAttribute('onclick', SecondFunction) の代わりに。前者は関数を直接実行し、後者は関数をイベント ハンドラーとして登録します。
正しい使用法:
<code class="javascript">// Create a new element with an onclick event listener var sentNode = document.createElement('a'); sentNode.setAttribute('href', "#"); sentNode.setAttribute('onclick', secondFunction);</code>
誤った使用法:
<code class="javascript">// Immediately executes the function upon loading the page sentNode.setAttribute('onclick', secondFunction());</code>
重要な違いSecondFunction に追加された括弧内にあります。これらを省略すると、コードはイベント ハンドラーを関数への参照として定義し、要素がクリックされたときにイベント ハンドラーを実行できるようにします。逆に、括弧を含めると、関数の実行がすぐにトリガーされます。
この正しい使用法に従うことで、onclick イベントは意図したとおりに機能し、関連付けられた要素のクリックが呼び出されるのを待ちます。
以上がページ読み込み時の謎の Onclick 実行を防ぐには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。