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>
par :
<code class="javascript">sentNode.onclick = secondFunction();</code>
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>
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!