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 :

display


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Par défaut display
    bon je reviens avec mon truc ...

    cnf le message : 'incompatibilité sur mozilla'

    on a résolu le problème avec l'affichage des blocks mais j'ai du ajouter une fonction "afficher tout" qui me permet d'afficher tous les blocs...
    ici la fonction pour afficher block par block :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function afficher(sec)
    {
         thisSec = document.getElementById('e' +sec)
                   if (thisSec.style.display != 'none'){
    					thisSec.style.display = 'none';
    					document.getElementById('lien' + sec).innerHTML = 'Afficher';
     
                   }else {
                       	thisSec.style.display = '';
    					document.getElementById('lien' + sec).innerHTML = 'Masquer';
     
    				}
    }
    ici la fonction pour afficher tous les blocks
    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 affichertout(){
    var end = 4;
        for( var i = 1; i<=end; i++){
        var q = document.getElementById('e' + i) ;
            if (q.style.display =='none'){
                q.style.display ='';
    			document.getElementById('lien' + i).innerHTML= 'Masquer';
                document.getElementById('lien0').innerHTML = "Masquer tout";
            } else { 
                q.style.display ='none';
    			q = 'Afficher';
    			document.getElementById('lien' + i).innerHTML= 'Afficher';
                document.getElementById('lien0').innerHTML = "Afficher tout";
            }
        }
    }
    l'angoisse : c'est que si j'ai affiché un block et qu'ensuite je veux afficher tous les blocks, les blocks non préalablement affichés s'affichent et celui que j'avais préalablement affichés disparaît.... et inversément

    de même si j'affiche tous les blocks un à un( en jouant avec "afficher" ou "masquer" le lien "Afficher tout" ne se transforme pas en "masquer tout " so I am perdue !!!

    et j'ai besoin d'hommes forts( ou de femmes bien sur ) pour venir à mon secours !!!!
    (je rigole !!)

    si vous avez une idée??

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    l'angoisse : c'est que si j'ai affiché un block et qu'ensuite je veux afficher tous les blocks, les blocks non préalablement affichés s'affichent et celui que j'avais préalablement affichés disparaît.... et inversément
    logique... Dans ta fonction affichertout() tu as un test qui vérifie si l'élément est affiché ou non. S'il est affiché on le cache et vice-versa.

    D'ailleurs pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     document.getElementById('lien0').innerHTML = "Masquer tout";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     document.getElementById('lien0').innerHTML = "Afficher tout";
    sont dans la boucle for ? Un appel suffit.

    Si tu veux que ta fonction fasse à la fois "montrer tout" et "cacher tout" tu peux séparer le test en deux parties. Un exemple fait à la va vite :
    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
    28
    29
    30
    31
     
    function AfficherMasquer(){
    var end = 4;
    var q;
        if (document.getElementById('lien0').innerHTML == "Afficher tout")
        {
          for( var i = 1; i<=end; i++)
          {
            q = document.getElementById('e' + i) ;
            if (q.style.display =='none')
            {
                q.style.display ='';
                document.getElementById('lien' + i).innerHTML= 'Masquer';
            }
          }// fin de for()
          document.getElementById('lien0').innerHTML = "Masquer tout";
        }
        else //if (document.getElementById('lien0').innerHTML == "Masquer tout")
        {
          for( var i = 1; i<=end; i++)
          {
            q = document.getElementById('e' + i) ;
            if (q.style.display =='')
            {
                q.style.display ='none';
                document.getElementById('lien' + i).innerHTML= 'Afficher';
            }
          }// fin de for()
          document.getElementById('lien0').innerHTML = "Afficher tout";
        }
    }
    au bug près....

    et petit avis personnel. Dans tes fonctions remplace
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    style.display = 'block';

  3. #3
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Par défaut hey merci
    je vais tester ça...

    par contre pour le display="block"

    j'ai bien sur commencer par cela mais il y a un bug dans firefiox...

    la seule facon pour qu ce soit efficace dans Ie et dans firefox... c les quotes vides!

    bon j'essaie et on verra

    merciiiii

  4. #4
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Par défaut
    c'est genial ... !!!
    mais avec cette fonction je ne peux plus affichicher un block 'e' à la fois ...

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function affichertout(){ 
    var end = 4; 
        for( var i = 1; i<=end; i++){ 
        var q = document.getElementById('e' + i) ; 
            if (q.style.display =='none'){ 
                q.style.display ='block'; 
     
            }
        } 
    }

  6. #6
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Par défaut
    genial ca marche !!!
    super grand merci !!

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    n'oublie pas le

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

Discussions similaires

  1. Display Format d'une cellule d'une DBGrid
    Par Wilco dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/10/2004, 13h00
  2. XLIB: extension GLX missing on display "...
    Par vince3320 dans le forum OpenGL
    Réponses: 9
    Dernier message: 29/07/2004, 15h48
  3. Réponses: 15
    Dernier message: 20/07/2004, 09h22
  4. Solution pas terrible mais ok [XFree] display
    Par sdeb dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 06/01/2004, 20h46
  5. [ websphere] problème d'export DISPLAY
    Par gogozep001 dans le forum Websphere
    Réponses: 8
    Dernier message: 04/09/2003, 13h31

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