Help menu dynamique

Résolu
TMG Boby Messages postés 27 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 30 juin 2006 - 27 juin 2006 à 15:56
TMG Boby Messages postés 27 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 30 juin 2006 - 30 juin 2006 à 10:38
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

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
29 juin 2006 à 21:41
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)
3
TMG Boby Messages postés 27 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 30 juin 2006
30 juin 2006 à 10:38
OMG, très grand merci à toi PetoleTeam ça marche nikel !!!
0
Rejoignez-nous