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 :

Appel d'une méthode par un EventListener


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Par défaut Appel d'une méthode par un EventListener
    Bonjour,

    Je débute en JavaScript, et là je butte sur un truc qui a pourtant l'air assez simple :

    En gros, je crée un objet qui contient deux méthodes, l'une (la méthode B) appelant l'autre (la méthode A). J'abonne la méthode B a l’événement "keydown" du document.

    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
    21
    22
    function MaClasse() {			
     
    	// méthodeA affiche un message
    	this.methodeA = function()
    	{
    		alert("exécute methodeA");
    	};
     
    	// la méthode methodeB appelle la méthodeA
    	this.methodeB = function()
    	{
    		this.methodeA();
    	};
     
    	// abonnement a l'évènement keydown
    	document.addEventListener('keydown', this.methodeB, false);	
    }
     
    var monObjet = new MaClasse();
     
    // ici, ca marche j'obtient bien le message
    monObjet.methodeB();
    lorsque je teste en appuyant sur un touche, j'obtient cette erreur :

    Uncaught TypeError: Object #<HTMLDocument> has no method 'methodeA'
    J'ai l'impression qu'il s'attend à trouver la méthode A dans "document" .

    Est-ce que c'est possible de faire ça en JavaScript ? Est-ce que je m'y prends mal ?

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Par défaut
    J'ai trouvé une solution
    Je la poste pour les gens qui auront le même souci, elle provient de cette page :

    http://stackoverflow.com/questions/1...d-of-undefined

    Pour vouloir faire ce que je voulais il faut stocker "this" dans une propriété de mon objet et appeler les méthodes a partir de cette propriété .

    Mon code devient donc :

    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
    21
    22
    23
    24
    25
    26
    function MaClasse() {		
     
    var moiMeme = this;	
     
    	// méthodeA affiche un message
    	this.methodeA = function()
    	{
    		alert("exécute methodeA");
    	};
     
    	// la méthode methodeB appelle la méthodeA
    	this.methodeB = function()
    	{
    		moiMeme.methodeA();
    	};
     
    	// abonnement a l'évènement keydown
    	document.addEventListener('keydown', this.methodeB, false);	
    }
     
    var monObjet = new MaClasse();
     
    // ici, ca marche j'obtiens bien le message
    monObjet.methodeB();
     
    // par la suite en pressant un bouton j'ai désormais le message
    Voila

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

Discussions similaires

  1. plugin perso, appel une méthode par un string
    Par splifferwolf dans le forum jQuery
    Réponses: 3
    Dernier message: 27/11/2011, 13h17
  2. Appeler une méthode par son nom sans utiliser eval
    Par rambc dans le forum Général Python
    Réponses: 5
    Dernier message: 30/10/2009, 16h05
  3. Appel d'une méthode java par le biais d'un lien
    Par Lex92 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 02/07/2008, 13h17
  4. [Framework] Appel d'une méthode par Spring
    Par badi082 dans le forum Spring
    Réponses: 3
    Dernier message: 03/06/2008, 12h07
  5. Réponses: 10
    Dernier message: 10/12/2006, 16h26

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