Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JS] Dislpay qui ne change pas

le else if() foire ..

Sujet résolu
Anonyme
    11 mai 2006 à 20:39:07

    Bonjour tout le monde, comment allez-vous?
    Personnellement, je me casse la tête depuis une bonne heure pour trouver d'où viens mon problème de javascript.

    en deux mots, ce script sert, quand on clique sur un lien, a afficher/cacher un bloc via la propriété css display.
    Il marche .. à moitié!
    Quand les blocs sont display: none; ( via windows.onload), je les affiche en cliquant sur le lien.
    Mais quand je veux les cacher en reclicquant sur le lien .. bin rien! Ca reste comme avant :euh:

    Voila le script, l n'est pas commenté, mais comme c'est juste du conditionnel, tout le monde peut le comprendre ( mais qui trouveras l'erreur? :p )
    function onglet(id) {
        var d = document.getElementById(id);
        if(d) {
            if(d == document.getElementById("banniere")) {
                        if(d.style.display='none') {
                                d.style.display="block";
                        for(var i=1; i < 10 ; i++) {
                                document.getElementById("menu"+i).style.display = "none";
                                }
                            }
                            else if(d.style.display='block') {
                                d.style.display='none';
                            }       
                    }
                    else {
                if(d.style.display='none') {
                                if(document.getElementById("banniere").style.display='block') {
                                        document.getElementById("banniere").style.display="none";
                                    }       
                                d.style.display='block';
                            }       
                            else if(d.style.display='block') {
                                d.style.display='none';
                            }       
                    }       
        }
    }
    window.onload = function() {
        for(var i=1; i < 10 ; i++) {
            document.getElementById("menu"+i).style.display="none";
        }
    }


    Pour utiliser le script, il suffit d'un lien et d'un bloc ( bout de ma page ):

        <div class="top">
            <img src="menu.png" alt="" usemap="#menu" />
                    <map class="montre" name="menu" id="map">
                        <area shape="poly" coords="0, 0, 68, 0, 68, 18, 0, 18" alt="Banniere" href="javascript:onglet('banniere');" />
                            <area shape="poly" coords="69, 0, 137, 0, 137, 18, 69, 18" alt="Menu 1" href="javascript:onglet('menu1');" />
                            <area shape="poly" coords="138, 0, 204, 0, 204, 18, 138, 18" alt="Menu 2" href="javascript:onglet('menu2');" />
                    </map>
            </div>
            <div class="menu">
                    <div id="banniere" style="width: 100%; height: 107px; background-color: yellow;">
                                    Cacher cette horrible bannière ;)
                    </div> 
                    <ul id="menu1">
                            <li>Sous menu 1.1</li>
                            <li>Sous menu 1.2</li> 
                            <li>
                                            Fermez ce menu de merde ;)
                            </li>
                    </ul>
                    <ul id="menu2">
                        <li>Sous menu 2.1</li>
                            <li>Sous menu 2.2</li>
                            <li>
                                        Fermez ce menu de merde ;)
                            </li>
                    </ul>   
        </div>


    Voilou, vous n'avez qu'a voir ce que ca fai, je continue de cherchez, mais je ne vois pas ou je pourrais encore chercher :(

    Merci à ceux qui ont tout lus et encore merci d'avance à ceux qui sauront m'aider :)

    edit: erf, désolé pour la faute dans le titre ^^'
    • Partager sur Facebook
    • Partager sur Twitter
      11 mai 2006 à 20:50:06

      il te suffit de mettre deux signes = à la place d'un seul à chaque fois que tu fais ça :
      if(d.style.display='none')

      après c'est bon, @++ ;)
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        11 mai 2006 à 20:57:28

        Erf >_<
        Mea culpa, je n'ai même pas vu ca :euh:

        Merci bien de ton aide, :)
        bye
        • Partager sur Facebook
        • Partager sur Twitter

        [JS] Dislpay qui ne change pas

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown