|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 6 ![]() |
Bonjour à la cantonade,
je veux appeller une fonction interne d'un objet mais avec domready (mootools) Code :
ce qui est normal car ca s'execute en dehors de l'objet j'ai essayé avec Formulaire.pourCreation(); mais c'est pas mieux. Bien sur avec Code :
Auriez vous une solution. Merci! |
||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
Bonsoir,
il te faut encapsuler le fonction dans une fonction anonyme à laquelle tu passes ton objet en paramètre Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() ![]() Inscription : mars 2008 Messages : 2 690 ![]() |
Bonjour,
Je ne suis pas sûr que la référence au domready puisse se faire à l'intérieur d'un objet. Votre seconde tentative est la bonne, il me semble. Voici comment je l'ai retravaillée : Code :
Edit : Et bien on dirait que la version de NoSmoking fonctionne également.
|
||
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 6 ![]() |
Merci de vos rapides reponses.
NoSmoking, j'aurai jamais trouvé ca tout seul, d'ailleurs, y aurait-il un tuto qui causerait de ces "encapsulage dans fonction anonyme" car j'avoue c'est un peu abstrait pour moi, je vois que ca marche, mais de la à comprendre le fonctionnement! J'ai d'autre part un 2eme probleme, presque similaire au précédant - appel d'une function interne à l'objet de l'exterieur, avec un bouton et son "onclick" Code :
mais les variables sont undefined et le "alert" affiche "undefined" Avez vous une soluce?!!! Merci de votre aide. |
||
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Inscription : mars 2008 Messages : 2 690 ![]() |
Si l'on regarde votre premier exemple, vous initialisez votre variable avec this :
Et on l'utilise également avec this : Dans votre second exemple, vous initialisez la variable sans this : Mais vous l'utilisez avec this : |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 6 ![]() |
non non c'est pareil
j'ai essayé avec Code :
j'ai toujours le alert qui renvoi "undefined" |
||
|
|
00
|
|
|
#7 | ||||||
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
je ne sais par quel bout commencer...
...this fait référence à l'objet en cours. Lorsque que tu es dans la définition de l'objet, le this représente effectivement l'objet, mais lorsque tu écris inp.addEventListener('click',this.pourModifier,false);, l'objet en cours, au moment de la réalisation de l'événement click, sera le bouton sur lequel tu viens de cliquer, d'où la réponse undefined car effectivement ton button n'a pas de méthode pourModifier. Pour palier à ce problème de closure, il existe plusieurs façons de faire. La méthode la plus simple, si tu n'as pas d'autre événement à mettre sur le onclick de ton button est de faire au plus simple si l'on écrit... Code :
Code :
Code :
Il existe d'autres méthodes pour y arriver, passage par l'appel d'une fonction qui retourne la référence à la fonction...etc...mais bon je te propose de lire Programmation objet, il n'y a rien à jeter, tout à dévorer en 3 parties |
||||||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 6 ![]() |
SUPER
J'avais essayé de faire le genre 2e methode sans succes faut dire que la syntaxe de la methode orpheline est un peu tordue Je vais me replonger dans les 3 volumes de "developpez" car j'avait zappé "this function" Merci encore. |
|
|
00
|
|
|
#9 | ||||
|
Invité de passage
![]() Inscription : décembre 2006 Messages : 6 ![]() |
Apres un peu d'abscence, je reviens vers vous, car je suis un mauvais-mauvais, et je ne trouve pas la reponse tout seul.
Code :
J'ai essayé en mettant Code :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com