ホームページ  >  記事  >  ウェブフロントエンド  >  アンカー タグの作成中に Javascript OnClickListener 関数が即時に呼び出されないようにする方法は?

アンカー タグの作成中に Javascript OnClickListener 関数が即時に呼び出されないようにする方法は?

DDD
DDDオリジナル
2024-10-22 07:15:03894ブラウズ

How to Prevent Immediate Invocation of Javascript OnClickListener Function during Anchor Tag Creation?

Javascript OnClickListener 関数がすぐにトリガーされる

従来のリンクの外観を模倣するが、代わりに関数をトリガーするアンカー タグを作成しようとしたとき新しいページにリダイレクトすると、ユーザー入力に関係なく、リンクの作成時に onclick 関数が呼び出されます。これにより、その後リンクを手動でクリックすることができなくなります。

問題は、onclick 関数の不適切な実装にあります。実際の関数自体を割り当てる (secondFunction()) のではなく、関数を参照するのが正しい構文 (secondFunction) です。これにより、関数は宣言時ではなく、onclick イベントが発生したときにのみ呼び出されるようになります。

これを修正するには、

<code class="javascript">sentNode.setAttribute('onclick', secondFunction());</code>

<code class="javascript">sentNode.onclick = secondFunction();</code>
これにより、 SecondFunction 関数への参照が渡され、クリックされたときに呼び出せるようになります。修正されたコードは次のようになります。

<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>
これらの手順に従うと、onclick 関数が正しく割り当てられ、リンクの作成時にすぐに呼び出さなくても、リンクが意図したとおりに機能できるようになります。

以上がアンカー タグの作成中に Javascript OnClickListener 関数が即時に呼び出されないようにする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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