IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

dom 2 pour que this soit l'objet


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 120
    Points
    120
    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 : 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 !

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Points : 120
    Points
    120
    Par défaut
    Je me réponds - en espérant que la solution trouvée satisfasse d'autres plus tard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Que mettre dans une cellule pour que estvide soit vrai
    Par jack-ft dans le forum Excel
    Réponses: 6
    Dernier message: 04/09/2012, 05h53
  2. Réponses: 29
    Dernier message: 03/11/2011, 17h52
  3. [XL-2007] comment faire pour que ce soit une division.
    Par Danaxia dans le forum Excel
    Réponses: 4
    Dernier message: 08/05/2011, 18h27
  4. Réponses: 0
    Dernier message: 19/07/2010, 06h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo