"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi la fonction JavaScript onclick se déclenche-t-elle prématurément lorsque des parenthèses sont utilisées ?

Pourquoi la fonction JavaScript onclick se déclenche-t-elle prématurément lorsque des parenthèses sont utilisées ?

Publié le 2024-11-10
Parcourir:897

Why Does JavaScript onclick Function Trigger Prematurely When Parentheses Are Used?

Fonction JavaScript onclick déclenchée prématurément

Lors de la création d'un lien avec une esthétique similaire à une balise mais destiné à exécuter une fonction lors d'un clic , les utilisateurs peuvent rencontrer un scénario dans lequel la fonction est appelée par erreur lors du chargement de la page. Cela empêche l'événement de clic souhaité de fonctionner correctement.

Le piège courant est l'utilisation inappropriée des parenthèses lors de l'attribution de l'attribut onclick. Au lieu de sentNode.onclick = secondFunction(), qui exécute immédiatement la fonction, la syntaxe correcte est sentNode.onclick = secondFunction. Ceci attribue une référence à la fonction, qui ne sera exécutée que lors de l'événement de clic.

function startFunction() {
  var sentNode = document.createElement('a');
  sentNode.setAttribute('href', "#");
  sentNode.setAttribute('onclick', secondFunction);
  //sentNode.onclick = secondFunction();
  sentNode.innerHTML = "Sent Items";
  //...
}

En omettant les parenthèses, l'événement onclick est correctement lié à une référence de fonction et non au résultat de son exécution, garantissant le comportement souhaité.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729552154. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3