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 :

DIV : masquer quand une autre est affichée


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut DIV : masquer quand une autre est affichée
    Bonjour,
    Suis nouveau ici, j'espère être dans le bon forum ... ;-)

    Je viens de modifier un script (à suivre) pour mes besoins, mais il me manque un petit quelque chose :
    Je voudrais que lorsqu'on a ouvert une DIV, celle-ci se referme quand on en ouvre une autre
    Le code :

    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
    <script type="text/javascript"> 
    <!-- 
    function aff(objet){ 
    if(document.getElementById(objet).style.display == "block") { 
    document.getElementById(objet).style.display = "none"; } else { 
    document.getElementById(objet).style.display = "block"; } 
    } 
    --> 
    </script> 
    </head> 
    <body> 
    <a href="javascript:aff('ContenuA');"><?php echo TXT_MENU_HIR; ?></a> 
    | <a href="javascript:aff('ContenuB');"><?php echo TXT_MENU_BERR; ?></a> 
    | <a href="javascript:aff('ContenuC');"><?php echo TXT_MENU_NOZ; ?></a> 
    <br> 
     
    <div id="ContenuA" style="display: none;border: 0px solid black";> 
    <?php include("hir.php"); ?> 
    </div> 
     
    <div id="ContenuB" style="display: none;border: 0px solid black";> 
    <?php include("berr.php"); ?> 
    </div> 
     
    <div id="ContenuC" style="display: none;border: 0px solid black";> 
    <?php include("noz.php"); ?> 
    </div>
    Merci d'avance :-)

  2. #2
    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
    Avec une variable globale qui contient la div affichée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var actuel=null;
    function aff(objet){ 
    if(document.getElementById(objet).style.display == "block") { 
        document.getElementById(objet).style.display = "none";
        actuel = null;
    }
    else { 
        if(actuel){document.getElementById(actuel).style.display = "none";}
        document.getElementById(objet).style.display = "block";
        actuel = objet;
    } 
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci :-)
    Ca marche impecc

    Par contre, je viens de me rendre compte d'un truc :
    Si la personne qui visite a désactivé le javascript, rien ne s'affiche ...
    (vi, suis nouveau en javascript aussi ... lol)

    Me demande si je vais pas plutot mettre un sous-menu en include php (là, sais faire )
    Le javascript charge bcp plus vite bien sur, mais l'include est quand meme une sécurité, non ?

    @++

  4. #4
    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
    Utilise plutôt des liens sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="lien_si_js_desactive" onclick="aff('ContenuA');return false"><?php echo TXT_MENU_HIR; ?></a>
    Comme ça, si JavaScript est activé, c'est lui qui est exécuté et le return false empêche de suivre le lien, sinon, c'est le include qui fonctionne (le lien du href).
    Voir la FAQ

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

Discussions similaires

  1. [Dojo] executer une fonction quand une autre est terminée
    Par arasm dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 25/12/2009, 11h46
  2. executer une fonction quand une autre est terminée
    Par arasm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/12/2009, 17h38
  3. Griser Checkbox quand une autre est séléctionnée
    Par FleuVounet dans le forum Composants
    Réponses: 1
    Dernier message: 15/04/2009, 12h32
  4. Décocher une case quand une autre est cochée
    Par petitange_lili dans le forum Qt
    Réponses: 14
    Dernier message: 27/06/2008, 19h01
  5. insertion d'une nouvelle feuille quand une autre est pleine
    Par rom05 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2008, 08h50

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