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

jQuery Discussion :

Callback ajax dans une class [Fait]


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Par défaut Callback ajax dans une class
    Bonjour à tous,


    Voici mon problème :
    J'utilise jquery pour mes requêtes en ajax (entre autre) mais mon projet est totalement développé en class. Lorsque la fonction de callback, après la requête ajax, est appelée je perd mon objet..
    Je sais pas si c'est très clair alors voici un exemple :


    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
    26
    27
    28
    29
    var _mf = {};
    
    _mf.myClass = function() {
       this.testVar   = 'bar';
    }
    
    _mf.myClass.prototype = {
       getData: function(id) {
          $.ajax({
                url: 'http://www.mywebsite.com/getdata/',
                data: 'id='+id,
                success: this.getDataCallback,
                type: 'POST',
                dataType: 'json',
                cache: false,
                async: false
             });
       },
       getDataCallback: function(data, textStatus) {
          alert(this.testVar); // return "undefined"
          this.testFct(); // erreur JS function not defined...
       },
       testFct: function() {
           alert('testFct : ok');
       }
    }
    
    var obj = new _mf.myClass();
    obj.getData(1);

    lorsque getDataCallback est appelé et bien je perd mon objet ....


    J'espère que vous pourrez m'aider.

    Matt

  2. #2
    Invité de passage
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Par défaut
    J'ai le même problème, tu as trouvé une solution ?
    1 an et demi après... !

  3. #3
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    en effet, this représente l'élément ayant provoqué l'évènement
    pour palier à ce problème tu peux utiliser apply ou alors la technique
    suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
       getData: function(id) {
          var obj = this; // copie this dans obj
          $.ajax({
                url: 'http://www.mywebsite.com/getdata/',
                data: 'id='+id,
                // obj est visible depuis la fonction interne (closure)
                success: function(data, textStatus) { obj.getDataCallback(data, textStatus) },
                type: 'POST',
                dataType: 'json',
                cache: false,
                async: false
             });
       },
    Un peu de doc sur les closures

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

Discussions similaires

  1. déclarer une callback dans une classe
    Par mathieu3392 dans le forum Débuter
    Réponses: 17
    Dernier message: 01/06/2015, 10h46
  2. Réponses: 4
    Dernier message: 29/05/2009, 00h17
  3. Réponses: 8
    Dernier message: 09/07/2005, 23h10
  4. Thread dans une classe ?
    Par Sephi dans le forum Threads & Processus
    Réponses: 7
    Dernier message: 07/03/2004, 18h16
  5. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42

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