Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 26/01/2012, 17h35   #1
Membre régulier
 
Inscription : octobre 2007
Messages : 199
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 199
Points : 77
Points : 77
Par défaut dom 2 pour que this soit l'objet

Bonjour,
Une question certes sans doute posée mille fois mais dont la réponse m’échappe un peu.
Soit :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
var jlc;
jlc = {};
jlc.addEvent = function (obj, evType, fn) {
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return false;
	} 
	else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return false;
	} 
};
Évidemment l'objet jlc contient bien d'autres méthodes utiles que nous ne développerons pas ici.
Dans un objet (qui est bien sûr défini par un monObjet = new Cc(); quelque part), je souhaite que dans la méthode this.changep appelée ainsi :
Code :
jlc.addEvent(this.pa,'change',this.changep)
Le mot this corresponde à l'objet monObjet correctement instancié avant et non pas à l'élément html (ici applelé this.pa).
Comment dois-je m'y prendre.
exemple :
Code :
1
2
3
4
5
6
Cc.prototype.comportement = function(){
		jlc.addEvent(this.pa,'change',this.changep)
};
Cc.prototype.changep = function(el){
		// ici je veux que this corresponde bien à l'objet monObjet et non à l'élément html this.pa
};
En résumé, lorsque jlc.addEvent est appelé dans une méthode d'un objet, je veux this dans cette méthode soit toujours l'objet et jamais l'élément html.
Merci !
JLC83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 23h01   #2
Membre régulier
 
Inscription : octobre 2007
Messages : 199
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 199
Points : 77
Points : 77
Je me réponds - en espérant que la solution trouvée satisfasse d'autres plus tard :
Code :
1
2
3
4
Cc.prototype.comportement = function(){
	var zis = this;
	jlc.addEvent(this.pa,'change',function(e){zis.changep();});
};
Dans ce cas, this est bien l'objet dans la méthode this.changep();
Et il est donc possible d'accéder à toutes les méthodes et propriétés ainsi qu'au prototype de l'objet.
JLC83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h40.


 
 
 
 
Partenaires

Hébergement Web