IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

addEventListener pour deux événements


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Par défaut addEventListener pour deux événements
    Pour mieux comprendre les événements javascript, j'ai fait ce petit bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <html>
    <body>
    <button id='b1'>Bouton 1</button>
    <button id='b2'>Bouton 2</button>
     
    <script type='text/javascript'>
     
    var obj = {
    	met: function(el) {
    		alert(el);
    	}
    };
     
    document.getElementById('b1').addEventListener("click", obj.met('b1'), false);
    document.getElementById('b2').addEventListener("click", obj.met('b2'), false);
     
    </script>
    </body>
    </html>
    Normalement, ce code crée deux boutons, et lorsqu'ils sont cliqués, ils envoient un alert.
    Par contre, seulement le premier événement est pris en compte, et en plus, dès le chargement de la page, et non lors du click.

    Il y a déjà quelques jours que je tourne autour de ça, mais je n'arrive à mettre la main sur ce qui semble être un problème de base.

    Je vous remercie d'avance pour vos lumières.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut et bienvenue sur developpez.com

    Il s'agit d'un grand classique

    L'utilisation correcte de addEventListener est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('b1').addEventListener("click", obj.met, false);
    Ainsi, tu passes à ton événement une référence à la fonction, quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('b1').addEventListener("click", obj.met('b1'), false);
    Tu passes comme callback le résultat de l'exécution de la fonction.
    Si tu veux passer des paramètres, tu peux utiliser une fonction anonyme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('b1').addEventListener("click", function(){obj.met('b1')}, false);
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Par défaut
    Merci pour la bienvenue, et aussi pour la réponse.
    Je retiens donc, qu'il suffit de ne pas invoquer la fonction. Et si besoin utiliser le tuyau de la fonction anonyme. Impeccable !!
    Un grand merci Bovino !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Count pour deux tables
    Par Safaritn dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/11/2005, 16h22
  2. switch case pour deux variable en meme temps
    Par petitours dans le forum C
    Réponses: 3
    Dernier message: 06/11/2005, 19h20
  3. [Sybase] Dump pour deux platefrome # ASE12.5
    Par vsavoir dans le forum Sybase
    Réponses: 9
    Dernier message: 14/07/2005, 18h31
  4. Que deux événements qui se passent en même temps.
    Par Melchisedec dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 03/08/2003, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo