Bonjour,
Une question certes sans doute posée mille fois mais dont la réponse m’échappe un peu.
Soit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !