[debutantJS]petit bug JS facilement identifiable

petit bug JS facilement identifiable [debutantJS] - HTML/CSS - Programmation

Marsh Posté le 11-06-2005 à 22:22:14    

voilà j'ai voulu modifier un script JS gerant les actions sur un menu deroulant stucturé par CSS
j'ai voulu l' ameliorer pour y ajouter quelques fonctionnalités
je m'explique:
d'origine le script permet:
-de cacher tous les sousmenus a l'affichage complet de la page
-par clik sur un item,que son sous menu s'affiche et que les autres sous menu ayant été ouverts sont fermés
 
l'objet de cette amelioration est la suivante:
-lorsqu'on clik sur un item, son sous menu s'affiche et les autres sous menus qui ont pu étre ouverts avant sont fermés, or il est particulierement desagreable qu'un sous menu se ferme lorsqu'il est situé au dessus d'un item cliké et qu'il décale ainsi tout le menu vers le haut
 
ALORS, l'idée est de ne fermer que les sous menu situés en dessous de l'item cliké  
donc voici le code:
edit:JE CROIS QUE G RESOLU MON BLEM ... a voir... update iminente...
edit2: en fait non , je reposte le script original:

Code :
  1. <script type="text/javascript">
  2.  window.onload=hideOnLoad;
  3.  function hideOnLoad(){
  4.  for (var i = 1 ; i <= 3 ; i++) {
  5.    document.getElementById('smenu'+i).style.display='none';
  6.    }
  7.  }
  8.  function display(id) {
  9.   var d = document.getElementById(id);
  10.   if (d.style.display != 'none') {
  11.    d.style.display = 'none';
  12.   }
  13.   else {
  14.    for (var i = 1 ; i <= 3 ; i++) {
  15.    document.getElementById('smenu'+i).style.display='none';
  16.    }
  17.   d.style.display = '';
  18.   }
  19.  }
  20.  </script>


 
edit: cette fois c bon !!!

Code :
  1. <script type="text/javascript">
  2.  window.onload=hideOnLoad;
  3.  function hideOnLoad(){
  4.  for (var i = 1 ; i <= 6 ; i++) {
  5.    document.getElementById('smenu'+i).style.display='none';
  6.    }
  7.  }
  8.  function display(id) {
  9.  for (var i = 1 ; i <= 6 ; i++) {
  10.    if( i > id ){document.getElementById('smenu'+i).style.display='none';}
  11.    }
  12.   if (document.getElementById('smenu'+id).style.display != 'none') {
  13.    document.getElementById('smenu'+id).style.display = 'none';
  14.   }
  15.   else {
  16.   document.getElementById('smenu'+id).style.display = '';
  17.   }
  18.  }
  19.  </script>


 
et une version perso tres subtile ...(en fait un clik sur un item dont le sous menu est fermé (en vue de l'ouvrir donc) va cacher les sous menus en dessous MAIS un clik sur un item dont le sous menu est ouvert(en vue de le fermer donc) n'aura comme action que de le fermer lui)

Code :
  1. <script type="text/javascript">
  2.  window.onload=hideOnLoad;
  3.  function hideOnLoad(){
  4.  for (var i = 1 ; i <= 6 ; i++) {
  5.    document.getElementById('smenu'+i).style.display='none';
  6.    }
  7.  }
  8.  function display(id) {
  9.   if (document.getElementById('smenu'+id).style.display != 'none') {
  10.    document.getElementById('smenu'+id).style.display = 'none';
  11.   }
  12.   else {
  13.        for (var i = 1 ; i <= 6 ; i++) {
  14.    if( i > id ){document.getElementById('smenu'+i).style.display='none';}
  15.    }
  16.   document.getElementById('smenu'+id).style.display = '';
  17.   }
  18.  }
  19.  </script>


Message édité par mphilamp le 11-06-2005 à 23:30:46
Reply

Marsh Posté le 11-06-2005 à 22:22:14   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed