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

Bibliothèques & Frameworks Discussion :

AddEvent sur un element dans une Class : this n'est pas l'objet courant


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 186
    Points : 71
    Points
    71
    Par défaut AddEvent sur un element dans une Class : this n'est pas l'objet courant
    Bonjour,
    j'ai créé une classe Mootools (1.3) qui crée un élément et qui assigne les events de cette Class à cet élément, les events sont bind avec le this de la classe. Cependant lorsque la classe a des propriétés modifiées, le this de l'event ne retourne pas l'objet courant mais l'objet tel qu'il été lors de l'assignation de l'évènement

    Voir l'exemple sur JsFiddle

    Cela fait plusieurs semaines que je me creuse la tête et je n'arrive pas à trouver de solution...
    Merci d'avance pour vos réponses

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 186
    Points : 71
    Points
    71
    Par défaut
    J'ai créé les même classes en javascript natif, est ça marche...
    Le problème vient donc, je pense, de Mootools à voir maintenant ce qui cloche.

    Exemple sur JsFiddle

  3. #3
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Désolé pour la réponse tardive, je suis fort pris ces jours-ci. Je ne sais pas ce qu'il se passe. Si j'ai le temps, j'essaierai de regarder de plus près.

    Ce sont quelles lignes qui posent problème ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 186
    Points : 71
    Points
    71
    Par défaut
    Il n'y a pas réellement de lignes qui posent problème...
    Mais on peut remarquer que le log définit dans le onBlur ne retourne pas ce qu'il devrait.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 186
    Points : 71
    Points
    71
    Par défaut
    J'ai créé les même classes en JavaScript Natif et ça marche...
    Le problème viens donc de Mootools et de la façon dont il gère sont objet Class

    L'exemple en JavaScript Natif

    Des idées d'où cela peut provenir ??

    Merci pour votre aide

  6. #6
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Je n'arrive pas à tester vos pages. Celle qui ne fonctionne pas m'affiche des lignes. Et celle qui fonctionne... plante. Du coup, je ne sais pas le résultat que vous désirez obtenir réellement.
    L'autre souci c'est que je ne sais pas comment Mootools gère son objet class. Je comprends bien l'idée d'un this qui ne pointerait pas sur le bon objet mais à part l'idée de passer par une variable temporaire (au bon moment)

    et d'utiliser ma_var au lieu de this, je ne sais pas trop quoi dire.

    Je pense à cette solution à cause d'expériences avec les boucles et la création d'input où l'on utilisait "i" (le témoin de la boucle) pour incrémenter le nom des input. On se rendait compte que tous les input avec la même valeur de "i" : la dernière. Par contre en passant par une variable intermédiaire, chaque input avait le bon nom.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 186
    Points : 71
    Points
    71
    Par défaut
    Je n'arrive pas à tester vos pages. Celle qui ne fonctionne pas m'affiche des lignes. Et celle qui fonctionne... plante.
    Il n'y a rien qui plante... Mais simplement le onblur fait un console.log(this).
    Pour l'exemple en pur JS, on remarque bien que le console.log(this) affiche bien le this courant et non le this tel qu'il était au moment de l'initialisation de l'event (cas de l'exemple avec mootools)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'onBlur':function(that){                  
                     console.log(this);
                 }
    En ce qui concerne
    ma_var = this;
    Déjà essayé et ça ne marche pas et c'est normal d'ailleurs.

Discussions similaires

  1. problèmes sur un combobox dans une classe appelée
    Par francky74 dans le forum JDBC
    Réponses: 9
    Dernier message: 02/04/2014, 13h09
  2. 'this.element' à la valeur null ou n'est pas un objet
    Par amiraprincesse dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/06/2011, 15h39
  3. Charger dynamiquement une classe qui n'est pas dans un jar
    Par rastakouair dans le forum Langage
    Réponses: 12
    Dernier message: 17/12/2007, 19h22
  4. Réponses: 3
    Dernier message: 01/06/2006, 16h26
  5. Recherche sur 2 elements dans une liste box.
    Par molarisapa dans le forum Access
    Réponses: 2
    Dernier message: 29/05/2006, 18h43

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