Javascript OnClickListener 関数がすぐにトリガーされる
従来のリンクの外観を模倣するが、代わりに関数をトリガーするアンカー タグを作成しようとしたとき新しいページにリダイレクトすると、ユーザー入力に関係なく、リンクの作成時に onclick 関数が呼び出されます。これにより、その後リンクを手動でクリックすることができなくなります。
問題は、onclick 関数の不適切な実装にあります。実際の関数自体を割り当てる (secondFunction()) のではなく、関数を参照するのが正しい構文 (secondFunction) です。これにより、関数は宣言時ではなく、onclick イベントが発生したときにのみ呼び出されるようになります。
これを修正するには、
<code class="javascript">sentNode.setAttribute('onclick', secondFunction());</code>
を
<code class="javascript">sentNode.onclick = secondFunction();</code>
<code class="javascript">function startFunction() { var sentNode = document.createElement('a'); sentNode.setAttribute('href', "#"); sentNode.onclick = secondFunction; // Assign the function reference sentNode.innerHTML = "Sent Items"; //Add new element to parent var parentNode = document.getElementById('parent'); var childNode = document.getElementById('sendNode'); parentNode.insertBefore(sentNode, childNode); }</code>
以上がアンカー タグの作成中に Javascript OnClickListener 関数が即時に呼び出されないようにする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。