Bonjour,
lorsque je fais ceci :
ça ne fonctionne pas et je ne vois pas comment y parer
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 function maFonction(){ x = ''; str= 'un test'; this.buildX = function(){ x = document.createElement('div'); x.appendChild(document.createTextNode('texte')); x.onclick = this.test; } this.test = function() { alert(this.str); } } toto = new maFonction(); toto.buildX(); document.body.appendChild(toto.x);![]()
a part en mettant ma fonction "test" hors de l'objet maFonction, en lui passant en parametre ce dont j'ai besoin dans l'objet courant.
sinon, j'ai quand même essayé de mettre :
this.x.onclick = maFonction.test.apply(this);
Au cas ou je ne serais pas clair, je reformule :
Mon probléme est la portée de this lorsqu'on l'utilise avec DOM,
lorsque je met element.onclik = this devient l'element DOM et non l'objet courant.
quelqu'un aurait une astuce pour m'éviter les bidouilles ?![]()
( eviter les bidouilles = eviter de délocaliser ma fonction )
Partager