|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Bonjour,
Voilà le problème : j'ai une "classe" javascript Ligne . Cette ligne est en fait une ligne d'un tableau sensé lister des documents : Code :
Ensuite, je le modifie en fonction du document que je veux représenter. Le problème vient quand je veux définir un onclick sur cette ligne. J'ai un truc du type Code :
maLigne.html = $("elementAModifier", maLigne).attr("onclick",this.auClic); Merci |
||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
(admettons)Citation:
Sinon : as-tu essayé la méthode "standard", avec un vrai gestionnaire d'événement ? edit : au fait, je vois que tu appelles Line.getOriginalHTML... à quel endroit est-elle incluse dans ton code ?
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Merci pour ta réponse
oui, tu auras noté les guillemets autour du mot "classe". Ca reste qd même un terme pratique. attr marche impeccable pour tous les autres éléments, genre Code :
maLigne.html = $("elementAModifier", maLigne).attr("class",this.document.getType()); Tu peux m'en dire un peu plus sur la méthode "standard" ? |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
addEventListener / attachEvent ^^
...qui souvent s'utilisent à travers une mini fonction qui switche selon le navigateur : Code :
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
||
|
|
00
|
|
|
#5 | |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Citation:
Pour les Event, je vais regarder tout ça, mais est-ce que c'est pas un peu compliqué pour quelque chose d'initialement relativement simple? Ah, et je kiff ton générateur de phrases ^^ |
|
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
MERCI !!!!
J'ai trouvé la fonction .click de JQuery (oui, je suis débutant ^^ ) Ca marche au poil. Merci de m'avoir mis sur la voie |
|
|
00
|
|
|
#7 | ||||
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Bon, en fait, ça marche pas si bien que ça...
edit: Dans toute la suite, "monElement" désigne l'élément HTML sur lequel je veux activer le clic. "Ma ligne" représentera une instance de Line (classe définie plus haut) j'ai dans une méthode de Line : Effectivement, si je clique sur "monElement", ça lance la fonction this.auClic. Sauf que this.auClic, exécute : edit(this.document), et qu'ici, this désigne "monElement", et non plus ma ligne... J'ai donc essayé : Code :
Deuxième tentative : Code :
Si vous avez une idée... Merci |
||||
|
|
00
|
|
|
#8 | ||
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Il y a peut-être quelque chose à faire avec des Event comme le suggère Romain, mais n'ayant jamais utilisé ça, je veux bien un coup de main pour mettre ça en place...
Quel élément doit recevoir le addEventListener ? Quelles infos je suis sensé récupérer de cet event? J'ai essayé sans grande conviction : Code :
|
||
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
A ce stade, je me demande s'il ne faudrait pas déplacer le thread vers la partie jQuery... ^^
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Pas d'accord avec toi : je me fiche de la méthode, JQuery, DOM, ou n'importe quoi ça me va.
Mais prenons ton lien. J'obtiens : Code :
$(monElement).bind("click",this.auClic); |
|
|
00
|
|
|
#11 | ||||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
C'est tout à fait normal.
this référence l'objet qui a appelé la méthode en cours. Si tu fais Code :
$(monElement).click(this.auClic(this)); Code :
$(monElement).onclick = function(){this.auClic()}; Pour garder une référence au this du constructeur, il faut passer par un alias (souvent nommé that, me, etc.) : Code :
Code :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||||
|
00
|
|
|
#12 | ||
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Bon, j'ai finalement trouvé une solution qui me fait un peu peur, mais tant pis :
Code :
Mais bon, ça marche |
||
|
|
00
|
|
|
#13 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Pourquoi beurk ?
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Essaye de faire ça en Java par exemple, et dis-moi ce qu'en pense ton compilateur. Tu vas me dire que c'est pas le même langage, certes, mais ça a tendance à me hérisser un peu le poil de faire "variable = this;" quand l'objet n'est même pas fini d'être créé. Mais vu que javascript se fiche de ce genre de détail, j'imagine que je devrais m'en foutre également. C'est probablement juste un reste de mes anciennes habitudes
|
|
|
00
|
|
|
#15 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Non, c'est juste que tu vois JavaScript comme un langage Orienté Objet classique alors que son modèle par prototype ne le rend absolument pas similaire à Java.
C'est pour ça que même s'il est possible de reproduire le fonctionnement de classes, cette terminologie est inappropriée pour JavaScript
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#16 | ||
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 65 ![]() |
JQuery ne propose pas de mécanique de delegate ?
Car si c’est le cas je te conseille de mutualisé cet mécanique, si tu souhaite associé des méthodes d’objet a des événement. Un truc du genre : Code :
|
||
|
|
10
|
|
|
#17 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
+1
Très bien vu. Merci beaucoup pour l'astuce |
|
|
00
|
|
|
#18 |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
00
|
|
|
#19 | |
|
Expert Confirmé Sénior
![]() Romain VALERIPOOête Inscription : avril 2008 Messages : 2 572 ![]() |
Citation:
T'as raison. Moi pareil en Java : combien de fois j'ai râlé parce que ces feignants de concepteurs (forcément mauvais) du langage avaient "oublié" (la honte) d'implémenter les fonctionnalités et caractéristiques que moi j'aimais bien en FORTRAN ![]() Comment ça j'exagère ? pff si on peut plus taquiner
__________________
...pour les linguistes et les curieux >>> générateur de phrases aléatoires __________________ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com