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 :

[débutant] compatibilité FF et IE - display


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut [débutant] compatibilité FF et IE - display
    Bonjour,

    Je cherche à faire une FAQ. Lorsque l'on clique sur une catégorie, cela affiche les questions de celle-ci. J'ai défini deux classes, une visible qui va m'afficher le block ( display:block; ) et une autre invisible qui me cachera le block ( display:none; ).

    Le code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <h1>FAQ</h1>
    <ul id="faq">
    	<li><a href="#" onclick="afficher(this);return false;">+</a> titre2
    		<ul>
    			<li>Question 2.a</li>
    			<li>Question 2.b</li>
    			<li>Question 2.c</li>
    		</ul>
    	</li>
    </ul>
    Le code JS :
    Code : 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(obj){
    	mon_ul = obj.parentNode.getElementsByTagName("ul");
    	if (mon_ul.length>0){
    		if (mon_ul[0].getAttribute("class")=="visible"){
    			mon_ul[0].setAttribute("class","invisible");
    			obj.firstChild.data = "+";
    		}
    		else {
    			mon_ul[0].setAttribute("class","visible");
    			obj.firstChild.data = "-";
    		}
    	}
    }
    Quand je clique sur le "+" se trouvant dans mon tag li, les questions appartenant à la liste s'affichent. Tout est okay sur FF, mais quand arrive IE, là viennent les problèmes. En effet, les questions de la liste ne veulent pas s'afficher lorsque le "+" est sélectionné ...

    Quelqu'un aurait-il une solution à ce problème?
    Je vous remercie.

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

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


    Le code est à adapter selon tes besoins, mais je pense qu'il répondra à ta question.

    Code html : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    .conteneur{
     height: 150px;
     width: 200px;
     border: 5px #AAAAAA ridge;
     background-color: #CCCCCC;
     overflow: auto;
     padding: 5px;
    }
    .clListe{
     display: none;
    }
    .item{
     cursor: pointer;
    }
     
    //-->
    </style>
     
    <script type="text/javascript">
    <!--
    var oldObj = null;
    function gestionListe(idObj)
    {
      var liste = document.getElementById(idObj);
     
      if (oldObj==liste && liste.style.display!="block")
         oldObj = null;
     
      liste.style.display = "block";
     
      if (oldObj!=null)
         oldObj.style.display = "none";
     
      oldObj = liste;
    }
     
     
    //-->
    </script>
     
    </head>
     
    <body>
    <div class="conteneur">
     
    <span class="item" onclick="gestionListe('liste1')">Afficher liste 1</span><br>
    <ul class="clListe" id="liste1">
    <li><a href="page1.htm">Item 1</a></li>
    <li><a href="page2.htm">Item 2</a></li>
    <li><a href="page3.htm">Item 3</a></li>
    </ul>
     
    <span class="item" onclick="gestionListe('liste2')">Afficher liste 2</span><br>
    <ul  class="clListe" id="liste2">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    </ul>
     
    <span class="item" onclick="gestionListe('liste3')">Afficher liste 3</span><br>
    <ul  class="clListe" id="liste3">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    </ul>
     
    </div>
     
    </body>
     
    </html>

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Par défaut
    J'te remercie Auteur, ton code m'a bien aidé.
    Pour résoudre le problème, j'ai rajouter une ligne de code dans mon fichier JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mon_ul[0].style.display = "none"
    Merci encore ^^

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par défaut
    Citation Envoyé par LaseLiep
    J'te remercie Auteur, ton code m'a bien aidé.
    Pour résoudre le problème, j'ai rajouter une ligne de code dans mon fichier JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mon_ul[0].style.display = "none"
    Merci encore ^^
    C'est surtout que l'attribut class n'est pas à utiliser mais c'est className.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Par défaut
    comme d'habitude !! class marche très bien comme attribut, sauf chez qui ? Internet Explorer !!

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 657
    Par défaut
    Citation Envoyé par highman
    comme d'habitude !! class marche très bien comme attribut, sauf chez qui ? Internet Explorer !!
    c'est tellement facile comme explication..... quand on ne cherche pas à comprendre

    remplace :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mon_ul[0].setAttribute("class","invisible");
    par
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mon_ul[0].className = "invisible";
    et là, ô miracle, ça marche : l'attribut class et reconnu quel que soit le navigateur.

    Néanmoins, "visible" comme nom de classe est inaproprié car c'est une valeur de l'attribut visibility (même si je doute qu'il y ait un risque de conflit).

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

Discussions similaires

  1. [Débutant] Compatibilité avec les processeurs
    Par kripteks dans le forum Assembleur
    Réponses: 7
    Dernier message: 13/04/2014, 14h11
  2. Quels est la compatibilité de .style.display
    Par arnolem dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/07/2006, 17h11
  3. Réponses: 1
    Dernier message: 22/07/2006, 17h09
  4. [Débutant]The XML page cannot be displayed
    Par lolodelp dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 19/04/2006, 10h03
  5. [Install] [Débutant] Pb de compatibilité JVM
    Par k-reen dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 30/06/2004, 12h53

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