Maison > interface Web > js tutoriel > Comment empêcher l'invocation immédiate de la fonction Javascript OnClickListener lors de la création d'une balise d'ancrage ?

Comment empêcher l'invocation immédiate de la fonction Javascript OnClickListener lors de la création d'une balise d'ancrage ?

DDD
Libérer: 2024-10-22 07:15:03
original
994 Les gens l'ont consulté

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

Fonction Javascript OnClickListener déclenchée immédiatement

Lors de la tentative de création d'une balise d'ancrage qui imite l'apparence d'un lien traditionnel mais déclenche une fonction plutôt que redirigeant vers une nouvelle page, la fonction onclick est invoquée lors de la création du lien, quelle que soit la saisie de l'utilisateur. Cela empêche tout clic manuel ultérieur sur le lien.

Le problème réside dans la mauvaise implémentation de la fonction onclick. Au lieu d'attribuer la fonction elle-même (secondFunction()), la syntaxe correcte consiste à référencer la fonction (secondFunction). Cela garantit que la fonction n'est appelée que lorsque l'événement onclick se produit, et non lors de sa déclaration.

Pour rectifier cela, remplacez :

<code class="javascript">sentNode.setAttribute('onclick', secondFunction());</code>
Copier après la connexion

par :

<code class="javascript">sentNode.onclick = secondFunction();</code>
Copier après la connexion

Cela transmettra une référence à la fonction secondFunction, permettant de l'appeler lorsque vous cliquez dessus. Le code corrigé devrait apparaître comme suit :

<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>
Copier après la connexion

En suivant ces étapes, la fonction onclick sera correctement attribuée, permettant au lien de fonctionner comme prévu sans invocation immédiate dès sa création.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal