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 :

Se servir de la valeur d'une variable dans un =function() et non de sa référence


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 87
    Points : 63
    Points
    63
    Par défaut Se servir de la valeur d'une variable dans un =function() et non de sa référence
    Bonjour,

    Dans le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	for (j = 0; j < nb_msg; ++j)
    	{
    		document.getElementById("category" + j).onmouseover = function() { SetFade(j); };
    	}
    Mon problème est que j'aimerai que ça soit l'équivalent de SetFade(0), SetFade(1), SetFade(2), ... Or ça créé des fonctions contenant SetFade(j) soit une référence à la variable globale j.

    Comment faire pour que ce soit la valeur du j de la boucle qui soit utilisé et non une référence vers le j global.

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    salut

    il faut passer par un gestionnaire d'évènement et non pas directement par l'évènement lui même , explication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ....onmouseover = function(x){ alert(x);mafonction(param)};
    ce qui sera passé en paramètre (x) a function() sera l'évènement et non pas le paramètre souhaité.

    pour cela il faut passer par un gestionnaire d'évènement :

    IsIE est un simple boolean permettant de savoir si l'on est sous ie ...
    temp est en fait une variable temporaire pointant sur l'objet lui même :
    var temp = this ;
    divTrans est une propriété de mon objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (!IsIE){
    					tonobjet.addEventListener('click', function(){
    						temp.fade(50, 0, temp.divTrans)
    					}, false);
    				} else{
    					tonobjet.attachEvent('onclick', function(){
    						temp.fade(50, 0, temp.divTrans)
    					});
    				}
    j'espère avoir été assez clair , essaye par toi même

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Voir la FAQ !

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    c'est une autre solution , si l'on ne veut pas passer par les gestionnaires d'évènement effectivement

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 87
    Points : 63
    Points
    63
    Par défaut
    Merci beaucoup à vous deux. Je vais prendre la solution de la FAQ car elle modifie quasiment pas mon code donc c'est top !

    Merci et bonne soirée.

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

Discussions similaires

  1. recuperer la valeur d'une variable dans une nouvlle page
    Par gloglo dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 11/01/2007, 17h08
  2. [excel] inserer la valeur d'une variable dans un commentaire
    Par loic_ dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/11/2006, 15h02
  3. [PHP-JS] valeur d'une variable dans innerHTML
    Par hammag dans le forum Langage
    Réponses: 2
    Dernier message: 06/07/2006, 12h30
  4. Valeur d'une variable dans une Session
    Par sysinfo33 dans le forum Struts 1
    Réponses: 4
    Dernier message: 30/06/2006, 11h53
  5. Réponses: 2
    Dernier message: 08/06/2006, 13h48

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