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 :

Portée d'une variable


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Par défaut Portée d'une variable
    Bonjour,
    J'ai un soucis qui je pense est lié à la porté des variables.
    J'ai écrit ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var largeur_fenetre;
    var slide_largeur;
    var centre_slide;
    $(window).load(function() {
        $(window).resize(function() {
            var largeur_fenetre = $(window).width();
            var slide_largeur = $(".img_slide").width();
            var centre_slide = (largeur_fenetre / 2) - (slide_largeur) / 2;
        });
        console.log(slide_largeur);
        //....suite du code....
    });
    Donc j'ai lu que si on déclare une variable au début du script avant toute fonction, elle devient une variable globales, utilisable dans tout le script.
    Mais qu'est ce qui ne va pas dans mon cas?
    Le console.log me renvoie 'undefined'

    Merci d'avance pour vos éclairages.
    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $( window ).load(function() {
     
           $( window ).resize(function() {
    ??

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Par défaut
    Bonjour jreaux62,
    en fait le window.load, me permet de ne charger le script qu'une fois le site chargé (un précédent post ou tu m'avait donné l'astuce) et le window.rezise devrait me permettre de gérer a la volée la modification des éléments graphique du site (des images qui forme un panoramique) lors des changements de taille des fenêtres (mais peut être suis-je partie sur un mauvais chemin...).
    Par exemple sur une tablette si je passe du mode paysage a portrait, le résultat est pas terrible...
    C'est visible ici : https://chateauargenties.live-website.com éventuellement...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Oui, mais ils ne sont pas censés s'imbriquer.
    Mais tu te trompes sur la définition de window.load : ça signifie "au chargement de page" *

    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $( window ).load(function() {
     ...
    });
    $( window ).resize(function() {
     ...
    });
    Soit ensemble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $( window ).on('load resize', function() {
     ...
    });
    * N.B. il me semble que SpaceFrog t'a conseillé de t'intéresser aussi à :
    qui est équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).ready(function(){

  5. #5
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Par défaut
    Ok, je vais refaire ça en deux étapes alors, merci beaucoup.
    Je vous dit si j'ai réussis a faire ce que je veux!!!
    Pour space Frog, ça n'était pas moi... Mais je note!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mcyann Voir le message
    Pour space Frog, ça n'était pas moi... Mais je note!
    Exact !

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    J'ai un soucis qui je pense est lié à la porté des variables.
    OUI !


    Le console.log me renvoie 'undefined'
    si l'on reprend ton code, on voit que :

    ligne #2 :var slide_largeur;, déclaration d'une variable globale non initialisée, donc valant à cette endroit undefined ;

    ligne #7 :var slide_largeur = $(".img_slide").width();, déclaration d'une nouvelle variable, utilisation du mot clé var, dans le « scope » de la fonction $(window).resize(function() ;

    ligne #10: console.log(slide_largeur);, affichage de la variable nommée slide_largeur qui est celle déclarée à la ligne #2, ce n'est donc pas la même que celle de la ligne #7 qui est hors « scope », après la fonction dans laquelle tu l'as déclarée.

    Pour en savoir plus :
    Déclaration de variables (sur MDN)

  8. #8
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Par défaut
    Bonjour,
    alors pour faire suite a mon post, j'ai trouvé la solution avec la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.addEventListener("resize", displayWindowSize);
    plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $( window ).resize(function() {
    .
    Ça marche pour moi comme ça.
    Merci pour les portées de variables, j'ai compris comment ça fonctionne!
    Encore merci pour vos conseil, il me reste un bug, mais je vais devoir me débrouiller tout seul pour le résoudre.
    Bonne journée

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

Discussions similaires

  1. Quelle est la portée d'une variable dans une page ASP ?
    Par sauceaupistou dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2007, 18h16
  2. Porté d'une variable
    Par koolkris dans le forum Delphi
    Réponses: 3
    Dernier message: 08/03/2007, 20h29
  3. Portée d'une variable dans une boucle FOR ?
    Par Neo41 dans le forum C++
    Réponses: 20
    Dernier message: 17/11/2006, 11h14
  4. [XSLT] pb portée d'une variable
    Par NPortmann dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/05/2006, 15h53
  5. Portée d'une variable globale
    Par Giill dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/12/2005, 10h13

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