Explication code

Dédé86 669 Messages postés vendredi 23 décembre 2005Date d'inscription 14 mars 2017 Dernière intervention - 14 mars 2017 à 08:53 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscriptionModérateurStatut 9 mars 2018 Dernière intervention
- 20 mars 2017 à 18:01
Bonjour,

Je rencontre un problème avec mon code Javascript / Jquery.

Je n'arrive pas à comprendre pourquoi ça ne fonctionne pas.

Voici mon code :

function Gallery(idGallery){

this.idGallery = idGallery;
/*idGallery vaut 12*/
console.log("valeur idGallery"+idGallery);

this.loadImg = function(){
fullUrl = constantes("ajax")+"?fonction=pageGallery&idGal="+this.idGallery;
this.idGallery = 8;
/*idGallery vaut 8*/
console.log("valeur idGallery dans loadImg "+this.idGallery);
that = this;
$.getJSON(fullUrl).done(this.loadImageCallback);
/*this.idGallery vaut 8, pourquoi je ne récupère pas la valeur modifié dans loadImageCallback (6), je croyais
  • la variable that contenait la référence de mon instance de this et donc que le récupérerai ma valeur modifié */ console.log("valeur this.idGallery après callback => "+this.idGallery); this.loadImageCallback = function(data){ /*idGallery vaut 8*/ console.log("valeur de that.idGallery "+that.idGallery); that.idGallery = 6; /*idGallery vaut bien 6*/ console.log("changement valeur pour stocker 6 ->"+ that.idGallery); } } aGallery = new Gallery(12);



Donc comme indiqué, je ne comprends pas pourquoi je ne récupère pas la valeur que j'ai modifié dans loadImageCallback

Je m'excuse je n'arrive pas remettre l'indentation proprement, j'espère que vous me pardonnerez, sachant que le code n'est pas très très long.
Merci beaucoup d'avance pour vos lumières ;-)
Afficher la suite 

Votre réponse

1 réponse

f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscriptionModérateurStatut 9 mars 2018 Dernière intervention - 20 mars 2017 à 18:01
0
Utile
var __galleryIntances = 0;

var Gallery = function ()
{
  console.log( 'Create new Gallery' );
  console.log( '  Begin' );
  
  this._name = 'gallery'+ (++__galleryIntances);
  console.log( '    Gallery name is ' + this._name);
  
  this.id    = arguments.length>=1 ? arguments[0] : 1;
  this._idBG = arguments.length>=2 ? arguments[1] : 8;
  this._idCB = arguments.length>=3 ? arguments[2] : 6;
  console.log( '    Gallery indexes is ' + this.id + ' / ' + this._idBG + ' / ' + this._idCB);
 
  this.log = function(aMessage)
  {
    console.log(this._name + ' : ' + aMessage );
    
    return this;
  };
  console.log( '    Gallery log function created');
  
  this.callBack = function()
  {
    this.log( 'Calling callBack func' ); 

    this.id = this._idCB; 
    this.log( this.id );
  };
  console.log( '    Gallery callBack function created');
  
  this.load = function()
  {
    this.log( 'Calling load func' ); 
    
    fullUrl = "https://code.jquery.com/jquery-3.2.0.slim.min.js"; 
        
    this.id = this._idBG;
    
    $.getJSON( fullUrl, this.callBack() );
      
    return this;
  };
  console.log( '    Gallery load function created');
  console.log( '  End' );
} 

g1 = new Gallery(12); 
g2 = new Gallery(10,3,5); 
g3 = new Gallery(11,0,0); 

g1.load();
g2.load();
g3.load();
Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.