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 :

Faire passer des variables hors des functions ?


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    749
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 749
    Par d�faut Faire passer des variables hors des functions ?
    Bonjour,

    j'ai cette fonction javascript � modifier pour faire passer une variable de la 2�me fonction vers la 1�re. Et je n'y arrive pas...
    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
    function gk_is_style1_text_anim(wrapper, contents, which, $G){
    	var txt = $E(".gk_is_text",wrapper);
    	// Je voudrais tester ici la valeur de "deja_venu" déclarée dans la fonction plus bas		
    	if (typeof(deja_venu)=='undefined') {
    		var old_etat = etat_initial;
    	} else {
    		alert ("Déjà passé");
    		var old_etat = new_etat;
    	}
    	new Fx.Opacity(txt,{duration: $G['anim_speed']/2}).start(1,0);
    	(function(){
    		new Fx.Opacity(txt,{duration: $G['anim_speed']/2}).start(0,1);
    		txt.innerHTML = contents[which];
    	}).delay($G['anim_speed']);
    		// Je déclare la variable
    		var deja_venu = "OUI";
    }
    Mais ma variable deja_venu est toujours undefined...


    C'est peut-�tre parce que la fonction principale est appel�e par du PHP ?

  2. #2
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Salut,

    tu d�clares ta variable avec var, elle est donc locale � ta fonction. Normal ! Un peut de r�vision te fera du bien : la port�e des variables.

    Sinon, tu parles d'une deuxi�me fonction, mais je n'en vois qu'une seule� Au fait, as-tu examin�, avec ton navigateur, ton code HTML g�n�r� ?

    Note qu'utiliser des variables globales n'est pas la meilleure fa�on de programmer en JS.

    Et juste par curiosit� : quelle biblioth�que tu utilises ?
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    749
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 749
    Par d�faut
    Pour les fonctions :
    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
    function gk_is_style1_text_anim(wrapper, contents, which, $G){
    	var txt = $E(".gk_is_text",wrapper);
    	// Je voudrais tester ici la valeur de "deja_venu" d�clar�e dans la fonction plus bas		
    	if (typeof(deja_venu)=='undefined') {
    		var old_etat = etat_initial;
    	} else {
    		alert ("D�j� pass�");
    		var old_etat = new_etat;
    	}
    	new Fx.Opacity(txt,{duration: $G['anim_speed']/2}).start(1,0);
    	(function(){
    		new Fx.Opacity(txt,{duration: $G['anim_speed']/2}).start(0,1);
    		txt.innerHTML = contents[which];
    	}).delay($G['anim_speed']);
    		// Je d�clare la variable
    		deja_venu = "OUI";
    }
    Merci pour la port�e avec var !
    Mais m�me en l'enlevant je n'arrive pas � passer la valeur de la variable "deja_venu" de la fonction 2 vers la fonction 1... Et quand le code repasse par la fonction 1 il me dit que : "Can't find variable: deja_venu"

    Le javascript doit �tre tir� de Mootools puisque le code provient d'un composant de Joomla.

  4. #4
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    D'accord.

    Alors. Il y a une petite subtilit� entre une variable non d�clar�e, et une variable non initialis�e. Les variables non d�clar�es provoquent des erreurs si on tente d'y acc�der. En l'occurence, ta variable deja_venu n'est pas d�clar�e au moment o� tu veux la tester, du coup tu as une erreur.
    Pour rem�dier � ce probl�me, d�clare-la, mais sans l'initialiser :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    var deja_venu;
     
    function gk_is_style1_text_anim(wrapper, contents, which, $G){
    ...
    Autre chose, pas besoin de typeof pour tester si une variable est initialis�e :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    if (deja_venu === undefined) {
    ...
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    749
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 749
    Par d�faut
    Merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Initialiser des variables hors constructeur
    Par sql_ignorant dans le forum Langage
    R�ponses: 6
    Dernier message: 20/02/2011, 23h05
  2. R�ponses: 4
    Dernier message: 01/10/2009, 17h56
  3. [MySQL] R�cup�rer des variables hors d'une fonction
    Par piero-la-lune dans le forum PHP & Base de donn�es
    R�ponses: 6
    Dernier message: 26/02/2008, 10h30
  4. Faire suivre une variable avec des espaces
    Par jonathan34 dans le forum Shell et commandes GNU
    R�ponses: 3
    Dernier message: 14/02/2008, 20h57
  5. R�ponses: 11
    Dernier message: 09/12/2005, 14h59

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