Witam!

Mam problem z napisaniem dynamicznego menu w JavaScript.

Kod JSa wygląda następująco:
  1. script type="text/javascript">
  2.  
  3. function Laduj() {
  4. var mainHandler = document.getElementById('main');
  5. var links = mainHandler.getElementsByTagName('a');
  6.  
  7. for(var i=0; i <= links.length; i++) {
  8. var j=i+1;
  9. if (j <= links.length) {
  10. var name = 'mtl'+j;
  11. links[i].onmouseover = function () { Pokaz(name); };
  12. }
  13. }
  14. }
  15.  
  16. function Pokaz(menu) {
  17. document.getElementById(menu).style.display = 'block';
  18. }
  19.  
  20. window.onload = Laduj;


a HTML tak:
  1. <div id="main">
  2. <a href="#" id="l1">Link 1</a> |
  3. <a href="#" id="l2">Link 2</a>
  4. </div>
  5.  
  6. <div id="mtl1">Treśc submenu 1.</div>
  7. <div id="mtl2">Treśc submenu 2.</div>


Problem w tym, że gdy najadę na któryś z linków zawsze pojawia się treść ostatniego submenu. Zdarzenia dla linków muszą być generowane dynamicznie, gdyż nie wiadomo ile będzie pozycji w menu.

Chowanie będzie działać na podobnej zasadzie.

Na razie wiem tyle, że problem tkwi w tej lini:
  1. links[i].onmouseover = function () { Pokaz(name); };

Zamiast modyfikować konkretny odnośnik (parametr i) to modyfikuje wszystkie linki w tablicy, więc przy każdej iteracji zmienia się wartość onMouseOver wszystkich elementów tablicy.

Mam nadzieję, że jasno opisałem problem smile.gif

Z góry dzięki za odpowiedź.