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 :

Fonction afficher cacher element avec display:block


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Points : 47
    Points
    47
    Par défaut Fonction afficher cacher element avec display:block
    Bonjour à tous,

    J'ai fait une petite fonction javascript toute simple qui affiche ou cache une div lorsque l'on clique sur un bouton:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function afficher_cacher(id,afficher,cacher)
    {
            if(document.getElementById(id).style.display!="none")
            {
                    document.getElementById(id).style.display="none";
                    document.getElementById('bouton_'+id).value=''+afficher+'';
            }
            else
            {
                    document.getElementById(id).style.display="block";
                    document.getElementById('bouton_'+id).value=''+cacher+'';
            }
            return true;
    }

    Et voici un exemple d'utilisation:
    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
    32
    33
    34
    35
    36
    37
    38
    <dt><strong><h2><input type="button" id="bouton_Autres/Divers" value="+" style="width:10px;" onclick="javascript:afficher_cacher('Autres/Divers','+','-');" />Autres/Divers</h2></strong></dt>
         <div id="Autres/Divers" class="Autres/Divers" style="display:none">
    			<dd><em><h3>Documentation</h3></em></dd>		
    					<div class=odd>
                        	<span class="titre_fichier"><a href="/frontend_dev.php/upload/8">Documentation</a></span>
                            <span class="decalage_fichiers">4,18 Mo</span>
                        </div>
     
    			<dd><em><h3>Master</h3></em></dd>		
    					<div class=even>
                        	<span class="titre_fichier"><a href="/frontend_dev.php/upload/6">Boot dell 360 PVP</a></span>
                            <span class="decalage_fichiers">2 Mo</span>
                        </div>
    					<div class=odd>
                        	<span class="titre_fichier"><a href="/frontend_dev.php/upload/7">Master XP - Installation - V1A</a></span>
                            <span class="decalage_fichiers">1 Mo</span>
                        </div>
     
    	</div>
    <dt><strong><h2><input type="button" id="bouton_LEDA" value="+" style="width:10px;" onclick="javascript:afficher_cacher('LEDA','+','-');" />LEDA</h2></strong></dt>
         <div id="LEDA" class="LEDA" style="display:none">
    			<dd><em><h3>Documentation</h3></em></dd>		
    					<div class=odd>
                        	<span class="titre_fichier"><a href="/frontend_dev.php/upload/8">Documentation</a></span>
                            <span class="decalage_fichiers">4,18 Mo</span>
                        </div>
     
    			<dd><em><h3>Master</h3></em></dd>		
    					<div class=even>
                        	<span class="titre_fichier"><a href="/frontend_dev.php/upload/6">Boot dell 360 PVP</a></span>
                            <span class="decalage_fichiers">2 Mo</span>
                        </div>
    					<div class=odd>
                        	<span class="titre_fichier"><a href="/frontend_dev.php/upload/7">Master XP - Installation - V1A</a></span>
                            <span class="decalage_fichiers">1 Mo</span>
                        </div>
     
    	</div>
    Sous Firefox ca fonctionne bien. Par contre sous IE 8, voila ce que ca me donne lorsque je déroule un élément:




    Au lieu de:



    Sous IE 6 c'est encore pire: les éléments se placent partout sur la fenetre et le display:none ne fonctionne pas...

    Merci de votre aide

  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 : 53
    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
    Le slash n'est pas autorisé pour un id et perturbe probablement IE.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    En remplacant par Autres seulement, le problème persiste...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    J'ai fait pas mal de manipulation et j'en suis arrivé à la conclusion que ce qui me gène c'est la gestion de bords arrondis qui est effectué par du javascript (curvycorners.src.js) pour IE alors que pour Firefox c'est du CSS.

    Si je retire l'appel à curvycorners.src.js, mon script fonctionne bien...

    Une idée du pourquoi du comment?

  5. #5
    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 : 53
    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
    J'imagine que le script fixe la hauteur de la div afin de pouvoir ajouter les éléments supplémentaires pour afficher les coins arrondis et passe le overflow en hidden, du coup la div ne se redimensionne pas automatiquement lors de la modification de son contenu.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    D'accord! Du coup, il y a pas trop de solution, c'est ca??

  7. #7
    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 : 53
    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
    Pour faire cohabiter les deux, il semble que non...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    Foutu IE et sa mauvaise gestion!!! Vivement le CSS3...

Discussions similaires

  1. Afficher des éléments avec ajax
    Par jean22 dans le forum AJAX
    Réponses: 10
    Dernier message: 18/12/2015, 23h26
  2. Syntaxe pour ne pas afficher un "id" avec display: none;
    Par dev45 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 12/04/2011, 19h17
  3. Afficher/Cacher menu avec slideToggle
    Par Digilougm dans le forum jQuery
    Réponses: 2
    Dernier message: 24/10/2010, 21h42
  4. Réponses: 5
    Dernier message: 14/01/2010, 18h11

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