Salut tous le monde.
J'ai besoin de votre aide. Je me met à la POO en JS et j'ai un petit soucis, je m'explique. Je crée une instance de ma classe au début de la page. Ensuite, au clique sur un lien j'appelle 2 fonctions de cette instance, sans soucis tout fonctionne.
Par contre dans ma fonction ScreenImage, j'associe la fonction CloseGalery de l'objet courant (this) à un lien. A l'usage quand je clique sur ce lien, la fonction CloseGalery est belle-et bien lancé mais this ne pointe pas sur mon instance de classe, mais sur ma page. Du coup tout les attributs (ceux définit das ma ImageGalery tel que CurrentImageIndex ) que je souhaite utiliser dans CloseGalery son undefined
Je précise que le code ci-dessous, est totalement épuré. L'idée étant de créer une classe qui permettra de gérer un affichage d'image. Je n'ai pas tout mis le code pour alléger le poste et que ça soit plus clair.
Ma clase ImageGalery
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 function ImageGalery(p_ImageTable) { //Propriété this.ImageTable = p_ImageTable; this.CurrentImageIndex = 0; this.BackgroundDiv = null; this.ScreenBackground = function() { } this.ScreenImage = function(ImageIndex) { this.LinkClose = document.createElement('A'); this.LinkClose.onclick = this.CloseGalery; } this.CloseGalery = function() { alert("this de type ImageGalery : " + (this instanceof ImageGalery)); // Affiche FALSE } }
Code de création de mon instance.
L'appelle au 2 fonctions qui fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var ImageList = new Array(); ImageList[0] = new Array("Upload/aspqvnturspqeft.JPG","Cage Assenseur"); ImageList[1] = new Array("Upload/bpqewkdajghmfkd.JPG","Maison chintoq"); ImageList[2] = new Array("Upload/cuijxyvfkdasxqe.JPG","Batiment rond"); ImageList[3] = new Array("Upload/fklijpqmwclisxh.JPG","Toit"); var MyGalery = new ImageGalery(ImageList);
J'espère que vous pourrez m'aidé, j'ai essayé de trouvé ma réponse dans les tuto sur la POO en JS, mais en vain.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <A href="#" onClick="{MyGalery.ScreenBackground();MyGalery.ScreenImage(0);}"> <IMG src="Upload/aspqvnturspqeft.JPG" width=100px height=100px> </A>
D'avance merci.
Partager