Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Mootools
Mootools Forum d'entraide sur le framework MooTools. Avant de poster : Tutoriels Mootools, FAQ MooTools, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2011, 14h08   #1
Membre du Club
 
Inscription : février 2007
Messages : 187
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 187
Points : 41
Points : 41
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
Neilime05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 14h10   #2
Membre du Club
 
Inscription : février 2007
Messages : 187
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 187
Points : 41
Points : 41
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
Neilime05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 15h34   #3
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 768
Points : 5 768
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 ?
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 17h44   #4
Membre du Club
 
Inscription : février 2007
Messages : 187
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 187
Points : 41
Points : 41
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.
Neilime05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 20h36   #5
Membre du Club
 
Inscription : février 2007
Messages : 187
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 187
Points : 41
Points : 41
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
Neilime05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 07h48   #6
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 768
Points : 5 768
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.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 12h20   #7
Membre du Club
 
Inscription : février 2007
Messages : 187
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 187
Points : 41
Points : 41
Citation:
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 :
1
2
3
'onBlur':function(that){                  
                 console.log(this);
             }
En ce qui concerne
Citation:
ma_var = this;
Déjà essayé et ça ne marche pas et c'est normal d'ailleurs.
Neilime05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h46.


 
 
 
 
Partenaires

Hébergement Web