3 votes

Exécution automatique des fonctions Javascript

Si j'écris l'événement de cette façon, l'action s'exécute quand elle le doit :

 document.getElementById('myElem').onmousedown = (e) => {
     console.log('fired!')
    }

Mais si j'écris la même chose d'une autre manière, l'action s'exécute lorsque la page est chargée, une seule fois :

let HandleEvent = (event) => {
 console.log('fired!')
}
document.getElementById('myElem').onmousedown = HandleEvent(event)

UPD : Bien sûr, ce n'est qu'un exemple, HandleEvent aura une logique beaucoup plus complexe.

Mes questions sont les suivantes :

  1. Pourquoi ?
  2. Comment le faire fonctionner correctement ?

0voto

engineforce Points 111

Vous avez assigné le résultat de HandleEvent() à l'événement, alors que vous devriez plutôt lui assigner la fonction.

Déclaration correcte :

document.getElementById('myElem').onmousedown = HandleEvent ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X