Maison  >  Article  >  interface Web  >  Comment empêcher l’exécution mystérieuse d’un clic lors du chargement de la page ?

Comment empêcher l’exécution mystérieuse d’un clic lors du chargement de la page ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-22 07:12:03761parcourir

How to Prevent Mysterious Onclick Execution Upon Page Load?

La fonction Javascript onclick se déclenche mystérieusement lors du chargement de la page

L'écouteur d'événement onclick ne doit s'exécuter que lors du clic de l'élément associé. Cependant, dans certains scénarios, on peut observer que la fonction est appelée immédiatement lors du chargement de la page, ce qui rend l'événement click inefficace.

Ce problème survient généralement lors de l'attribution de l'attribut onclick comme setAttribute('onclick', secondFunction ()) au lieu de setAttribute('onclick', secondFunction). Le premier exécute directement la fonction, tandis que le second l'enregistre en tant que gestionnaire d'événements.

Utilisation correcte :

<code class="javascript">// Create a new element with an onclick event listener
var sentNode = document.createElement('a');
sentNode.setAttribute('href', "#");
sentNode.setAttribute('onclick', secondFunction);</code>

Utilisation incorrecte :

<code class="javascript">// Immediately executes the function upon loading the page
sentNode.setAttribute('onclick', secondFunction());</code>

La distinction clé se trouve entre parenthèses ajoutées à secondFunction. En les omettant, le code définit le gestionnaire d'événements comme une référence à la fonction, lui permettant d'être exécuté lorsque l'on clique sur l'élément. A l'inverse, inclure les parenthèses déclenche immédiatement l'exécution de la fonction.

En adhérant à cet usage correct, l'événement onclick fonctionnera comme prévu, en attendant le clic de l'élément associé pour être invoqué.

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!

Déclaration:
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