Qui peut m'expliquer ce code en javascript ?

Résolu
Bonjour,
je développe une application web, j'avais besoin de réaliser un système de menu et sous menu vec une arborescence , après quelques recherches sur internet, je suis tombe sur ce code qui contient du html, css, et javascript ce que je cherchais exactement, mais que je n'arrive pas a comprendre (la combinaison)
j'aimerais aussi savoir que faire pour ajouter un sous-sous-menu
donc

- Menu
-----|
--- Sous menu
-------|
-----Sous sous menu
merci d'avance

voici le code

<style>
span.menu { display: block; }
span.ferme {display: none;}
.menu{text-decoration:none;decoration:none; color:red;}
</style>
<script>
function twAjusteMenu(id) {

element = document.getElementById(id);
element.className = (element.className.toLowerCase() == 'menu'?'ferme':'menu');
}

onload = function() {
twAjusteMenu('sousmenu1');
twAjusteMenu('sousmenu2');
twAjusteMenu('sousmenu3');
twAjusteMenu('sousmenu4');
}
</script>
</head>

<body bgcolor="#FFFFFF">

<span class="menu"><a href="/" onclick="twAjusteMenu('sousmenu1'); return false; ">menu 1er</a></span>
<span class="menu" id="sousmenu1">
<a href="1-1">1-1</a><br >
<a href="1-2">1-2</a><br >
<a href="1-3">1-3</a><br >
<a href="1-4">1-4</a><br >
<a href="1-5">1-5</a><br >
</span>
<span class="menu"><a href="/" onclick="twAjusteMenu('sousmenu2'); return false; twAjusteMenu('sousmenu1'); return false;">menu 2em</a></span>
<span class="menu" id="sousmenu2">
<a href="2-1">2-1</a><br >
<a href="2-2">2-2</a><br >
<a href="2-3">2-3</a><br >
<a href="2-4">2-4</a><br >
<a href="2-5">2-5</a><br >
</span>
<span class="menu"><a href="/" onclick="twAjusteMenu('sousmenu3'); return false; twAjusteMenu('sousmenu1'); return false;">menu 3em</a></span>
<span class="menu" id="sousmenu3">
<a href="2-1">2-1</a><br >
<a href="2-2">2-2</a><br >
<a href="2-3">2-3</a><br >
<a href="2-4">2-4</a><br >
<a href="2-5">2-5</a><br >
</span>

3 réponses

  1. salut, c'est peut être a cause de la ternaire ?

    en plus simple mais plus long :

    <style type="text/css">
    span.menu {
    display: block;
    }
    span.ferme {
    display: none;
    }
    .menu {
    text-decoration: none;
    decoration: none;
    color: red;
    }
    </style>
    <script type="text/javascript">
    function twAjusteMenu(id) {

    element = document.getElementById(id);
    if(element.className == 'ferme'){
    element.className = 'menu';
    }
    else{
    element.className ='ferme';
    }
    }

    onload = function() {
    twAjusteMenu('sousmenu1');
    twAjusteMenu('sousmenu2');
    twAjusteMenu('sousmenu3');
    twAjusteMenu('sousmenu4');
    }
    </script>
    </head>
    <body>
    <span class="menu"><a href="/" onclick="twAjusteMenu('sousmenu1'); return false; ">menu 1er</a></span>
    <span class="menu" id="sousmenu1"> <a href="1-1">1-1</a>
    <br >
    <a href="1-2">1-2</a>
    <br >
    <a href="1-3">1-3</a>
    <br >
    <a href="1-4">1-4</a>
    <br >
    <a href="1-5">1-5</a>
    <br >
    </span>
    <span class="menu"><a href="/" onclick="twAjusteMenu('sousmenu2'); return false; twAjusteMenu('sousmenu1'); return false;">menu 2em</a></span>
    <span class="menu" id="sousmenu2"> <a href="2-1">2-1</a>
    <br >
    <a href="2-2">2-2</a>
    <br >
    <a href="2-3">2-3</a>
    <br >
    <a href="2-4">2-4</a>
    <br >
    <a href="2-5">2-5</a>
    <br >
    </span>
    <span class="menu"><a href="/" onclick="twAjusteMenu('sousmenu3'); return false; twAjusteMenu('sousmenu1'); return false;">menu 3em</a></span>
    <span class="menu" id="sousmenu3"> <a href="2-1">2-1</a>
    <br >
    <a href="2-2">2-2</a>
    <br >
    <a href="2-3">2-3</a>
    <br >
    <a href="2-4">2-4</a>
    <br >
    <a href="2-5">2-5</a>
    <br >
    </span>

    ׺°"~'"°º×]|I{*------» m3745p10!7 «------*}I|[׺°"~'"°º×
    1. salut, j'ai plus de temps je t'explique ma version....j'essaye


      <span class="menu"><a href="/" onclick="twAjusteMenu('sousmenu1'); return false; ">menu 1er</a></span>
      <span class="menu" id="sousmenu1"> <a href="1-1">1-1</a>
      <br >
      <a href="1-2">1-2</a>
      <br >
      <a href="1-3">1-3</a>
      <br >
      <a href="1-4">1-4</a>
      <br >
      <a href="1-5">1-5</a>
      <br >
      </span>
      <span class="menu"><a href="/" <ital>onclick="twAjusteMenu('sousmenu2')</ital>; return false; twAjusteMenu('sousmenu1'); return false;">menu 2em</a></span>
      <span class="menu" id="sousmenu2"> <a href="2-1">2-1</a>
      <br >
      <a href="2-2">2-2</a>
      <br >
      <a href="2-3">2-3</a>
      <br >
      <a href="2-4">2-4</a>
      <br >
      <a href="2-5">2-5</a>
      <br >
      </span>
      <span class="menu"><a href="/" onclick="twAjusteMenu('sousmenu3'); return false; twAjusteMenu('sousmenu1'); return false;">menu 3em</a></span>
      <span class="menu" id="sousmenu3"> <a href="2-1">2-1</a>
      <br >
      <a href="2-2">2-2</a>
      <br >
      <a href="2-3">2-3</a>
      <br >
      <a href="2-4">2-4</a>
      <br >
      <a href="2-5">2-5</a>
      <br >
      </span>

      en souligné les class

      en gras les id

      en italique l'événement click

      on as la ligne :

      element = document.getElementById(id);
      en gros sa veut dire on stock en mémoire les id dans la variable mémoire
      ensuite :

      onclick="twAjusteMenu('sousmenu1');
      onclick="twAjusteMenu('sousmenu2');
      onclick="twAjusteMenu('sousmenu3');

      sa veut dire si on clique dessus on appel la fonction tw'AjusteMenu (function twAjusteMenu(id) ) et on envois l'id correspondant à la variable element

      if(element.className == 'ferme'){

      si cette element possede la class 'ferme' alors sa class deviens 'menu'
      element.className = 'menu';
      }

      sinon elle devient 'ferme'
      else{
      element.className ='ferme';
      }


      et si on regarde en css les class

      span.menu {
      display: block;
      }
      span.ferme {
      display: none;
      }

      none sa fait disparaître et block sa fait apparaître
      1. Merci lobotoFix, c'est juste ce que je cherchais.
        maintenant je peux ajouter les sous sous-menu,
        mais les blem ce que avec IE, Js (java-script) es désactivé au démarrage de la page.
      2. en local il faut accepter, mais une fois en ligne non, pas de soucis
      3. Merci vraiment
      4. Contributeur
        Salut

        tu peux retirer le blocage IE en loxal,
        pour travailler tu met une Mark of the Web (MOTW) juste sous le titre

        <title>...</title>
        <!-- saved from url=(0014)about:internet -->

        a+