Help menu dynamique [Résolu]

Signaler
Messages postés
27
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
30 juin 2006
-
Messages postés
27
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
30 juin 2006
-
Salut all
J'ai téléchargé un script de menu dynamique vertical sur l'éditeur javascript, jai modifié quelques lignes de codes mais je n'arrive pas au resultat suivant:
lorsque l'on clique sur une rubrique, celle çi s'ouvre pour faire apparaitre ses sous rubriques et je voudrais que lorsqu'on clique sur une autre rubrique la première reste ouverte et ne se referme que lorsque l'on reclique dessus ( j'ai peur de pas être clair  )

Voiçi le code complet:






var largeurMenu = 150                // Pour régler la largeur du menu
var policeMenu = "Verdana"            // Police pour les menus
var taillePoliceMenu = "10"            // Taille de la police du menu
var couleurPoliceMenu = "#000000"    // Couleur de la police du menu
var couleurBordure = "#000000"        // Couleur de la bordure du menu
var couleurFond = "#C3C9D4"            // Couleur du fond du menu
var couleurFond2 = "#A7ADB7"        // Couleur du fond des sous menus
var couleurLienRollOver = "#FFFFFF"    // Couleur des liens lors du rollover
var couleurFondRollOver = "#959EAD"    // Couleur du fond sur Rollover

//------------------- Valeurs du menu  ------------------------//

// nom de chaque menu - Vous pouvz en rajouter autant que vous le souhaitez
var menu = new Array();
menu[0]="Javascript";
menu[1]="Php/MySQL";
menu[2]="Html";

var ssmenuNom = new Array();
var ssmenuLien = new Array();
var ssmenuTarget = new Array();

// Valeurs sous le premier menu

ssmenuNom[0] = new Array();
ssmenuLien[0] = new Array();
ssmenuTarget[0] = new Array();

ssmenuNom[0][0] = "Cours";                                // Nom du lien
ssmenuLien[0][0] = "http://www.script-masters.com/";    // Adresse
ssmenuTarget[0][0] = "_blank";                            // ouvrir une fenetre : _blank
                                                        // ds la même fenetre : _top
                                                        // ds une frame : nom de la frame

ssmenuNom[0][1] = "Exemple";
ssmenuLien[0][1] = "http://www.script-masters.com/";
ssmenuTarget[0][1] = "_blank";

ssmenuNom[0][2] = "liens";
ssmenuLien[0][2] = "http://www.script-masters.com/";
ssmenuTarget[0][2] = "_blank";

// Valeurs sous le second menu - Répéter opération
ssmenuNom[1] = new Array();
ssmenuLien[1] = new Array();
ssmenuTarget[1] = new Array();

ssmenuNom[1][0] = "Cours";
ssmenuLien[1][0] = "http://www.script-masters.com/";
ssmenuTarget[1][0] = "_blank";

ssmenuNom[1][1] = "Exemple";
ssmenuLien[1][1] = "http://www.script-masters.com/";
ssmenuTarget[1][1] = "_blank";

ssmenuNom[1][2] = "liens";
ssmenuLien[1][2] = "http://www.script-masters.com/";
ssmenuTarget[1][2] = "_blank";

ssmenuNom[1][3] = "ohoho";
ssmenuLien[1][3] = "http://www.script-masters.com/";
ssmenuTarget[1][3] = "_blank";

// Valeurs sous le troisieme menu - idem
ssmenuNom[2] = new Array();
ssmenuLien[2] = new Array();
ssmenuTarget[2] = new Array();

ssmenuNom[2][0] = "Cours";
ssmenuLien[2][0] = "http://www.script-masters.com/";
ssmenuTarget[2][0] = "_blank";

ssmenuNom[2][1] = "Exemple";
ssmenuLien[2][1] = "http://www.script-masters.com/";
ssmenuTarget[2][1] = "_blank";

ssmenuNom[2][2] = "liens";
ssmenuLien[2][2] = "http://www.script-masters.com/";
ssmenuTarget[2][2] = "_blank";

//------------------- Ne rien modifier  ------------------------//
var nbMenu = menu.length;

//------------------- Rendu dynamique  ------------------------//

function montreMenu(num){
    for (var i=0; i<nbMenu; i++) {       
            objet = document.all["ssmenu"+i]       
    if (objet.style.display == ""){
        objet.style.display = "none"
    }
    }   
        objet = document.all["ssmenu"+num]           
    if (objet.style.display == "none"){
        objet.style.display = ""   
    }
}

function onClic(lien) {
    lien.style.background = couleurFondRollOver;
    lien.style.color = couleurLienRollOver;
}

function rollOut(lien) {
    lien.style.background = couleurFond2;
    lien.style.color = couleurPoliceMenu;
}

function ouvreLien(url,mode) {
    if (mode == "_blank") {
        window.open(url)
    } else if (mode == "_top")  {
        window.top.location.href = url
    } else {
        window.top.parent.frames[mode].location.href  = url
    }
}

//------------------- Génération du menu  ------------------------//

function generation () {
    document.write("<style type='text/css'>");
    document.write("td.menu {");
    document.write("    font-family: "+policeMenu+";");
    document.write("    font-size: "+taillePoliceMenu+"px;");
    document.write("    color: "+couleurPoliceMenu+";");
    document.write("    border: 1px solid "+couleurBordure+";");
    document.write("    background-color: "+couleurFond+";");
    document.write("}");

    document.write("table.ssmenu {");
    document.write("    font-family: "+policeMenu+";");
    document.write("    font-size: "+taillePoliceMenu+"px;");
    document.write("    color: "+couleurPoliceMenu+";");
    document.write("    border: 1px solid "+couleurBordure+";");
    document.write("    background-color: "+couleurFond2+";");
    document.write("}");
    document.write("</style>");
   
    document.write("\");
    //1ere boucle
    for (i=0; i<nbMenu; i++) {
        document.write(\"----
\");
        document.write(\""+menu[i]+", \");
        document.write(\"\");
        document.write(\"----
\");
        document.write(\"");
         //<!--Un espace-->
        document.write("<table width='"+largeurMenu+"' border='0' cellspacing='0' cellpadding='0'>");
        document.write("----
");
        document.write(", </td>\");
        document.write(\"\");
        document.write("
");
        //<!--Le sous menu-->
        document.write("\");
           // seconde boucle
        for (z=0; z<ssmenuNom[i].length; z++) {
            document.write(\"----
\");
            document.write(\""+ssmenuNom[i][z]+", \");
            document.write(\"\");
               //fin seconde boucle
        }
        document.write("
");
        document.write("</td>");
        document.write("</tr>");
        document.write("<tr>");
        document.write("<td width='2'></td>");
        document.write("</tr>");
        // fin 1 ere boucle
        }
    document.write("</table>");
    }

Merci

2 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
B
onsoir...

modifies la fonction comme suit et test..

function montreMenu(num){
/*
    for (var i=0; i<nbMenu; i++) {      
      objet = document.all["ssmenu"+i]      
      if (objet.style.display == ""){
        objet.style.display = "none"
      }
    }  
*/

    objet = document.getElementById(
"ssmenu" +num); // c'est plus DOM





//    objet = document.all["ssmenu"+num]          

    if (objet.style.display == "none")
      objet.style.display = ""  
    else
      objet.style.display = "none"   ;
}

;0)
Messages postés
27
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
30 juin 2006

OMG, très grand merci à toi PetoleTeam ça marche nikel !!!