Toon posts:

[JavaScript] Menu probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi. Dit is mijn eerste post hier en het wordt gelijk een hele lange. Het probleem
zit hier: http://www.johannus.com/nl/indextest.html

Het menu lijkt goed te werken, er zit alleen 1 fout in. Wanneer je eerst een
hoofdmenu item aanklikt, vervolgens een submenu item, en daarna weer een
ander hoofdmenu item, blijft het eerst hoofdmenu item geel, terwijl die wit zou
moeten worden.

Ik ben niet echt een expert in JavaScript en heb ook heel veel andere menu's
moeten bekijken voor ik zover ben gekomen. Een paar maanden ben ik hiermee
begonnen, maar werd er toen zo chagerijnig van dat ik ermee ben gekapt. Nu wil
ik toch nog dat laatste dingetje nog goed krijgen. Volgens mij is het niet echt
moeilijk op te lossen, als je verstand hebt van js, maar dat heb ik dus niet zo.

Dit is de code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!--navigatie met menubalk  
  var actief       = '';
  var actiefnummer = 0;
  if (document.images)
  {
    menuItem     = new Array();
    //de hoofdmenu-items
    menuItem[1]  = new Image(35,20); menuItem[1].src="../img/menu/menuhome0.gif";
    menuItem[2]  = new Image(39,20); menuItem[2].src="../img/menu/menubedrijf0.gif";
    menuItem[3]  = new Image(38,20); menuItem[3].src="../img/menu/menuorgels0.gif";
    menuItem[4]  = new Image(69,20); menuItem[4].src="../img/menu/menuaccessoires0.gif";        
    menuItem[5]  = new Image(26,20); menuItem[5].src="../img/menu/menump30.gif";        
    menuItem[6]  = new Image(46,20); menuItem[6].src="../img/menu/menuagenda0.gif";
    menuItem[7]  = new Image(39,20); menuItem[7].src="../img/menu/menucontact0.gif";                
    menuItem[11] = new Image(35,20); menuItem[11].src="../img/menu/menuhome1.gif";
    menuItem[12] = new Image(39,20); menuItem[12].src="../img/menu/menubedrijf1.gif";
    menuItem[13] = new Image(38,20); menuItem[13].src="../img/menu/menuorgels1.gif";
    menuItem[14] = new Image(69,20); menuItem[14].src="../img/menu/menuaccessoires1.gif";
    menuItem[15] = new Image(26,20); menuItem[15].src="../img/menu/menump31.gif";
    menuItem[16] = new Image(46,20); menuItem[16].src="../img/menu/menuagenda1.gif";
    menuItem[17] = new Image(39,20); menuItem[17].src="../img/menu/menucontact1.gif";
    //de pijltjes
    menuItem[8]  = new Image(10,11); menuItem[8].src = "../img/menu/menupijl0.gif";
    menuItem[18] = new Image(10,11); menuItem[18].src = "../img/menu/menupijl1.gif";
  }
  //dit is voor de onMouseOver en onMouseOut
  function wissel(van,naar)
  {
    if (van != actief)
    {
      if (document.images){document.images[van].src = menuItem[naar].src;}//meeste browsers
      else if (document.all){document.all[van].src = menuItem[naar].src;}//IE4 
      else if (document.layers){document.layers['mainmenu'].document.images[van].src = menuItem[naar].src;}//NS4      
    }
  }  
  //dit is voor de onClick  
  function wisselActief(van,naar)
  { 
    if (actief != '' && van != actief)
    {
      if (document.images){document.images[actief].src = menuItem[actiefnummer].src;}//meeste browsers
      else if (document.all){document.all[actief].src = menuItem[actiefnummer].src;}//IE4
      if (document.layers){document.layers['mainmenu'].document.images[actief].src = menuItem[actiefnummer].src;}//NS4
    }
    actief = van;
    actiefnummer = naar;
  }
//-->


En dit is wat er dan in de body staat (voor bijvoorbeeld het eerste hoofdmenu item):
HTML:
1
2
3
<a href="onder.html" onfocus="this.blur()" target="mainFrame" onMouseOver="wissel('homepic',11)" onMouseOut="wissel('homepic',1)" onclick="wisselActief('homepic',1);layerAan('home');alleLayersUit('bedrijf','orgels','accessoires','mp3','agenda','contact');">
   [img]"../img/menu/menuhome0.gif"[/img]
</a>


Heeft iemand misschien een idee hoe ik dit kan oplossen?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:07

crisp

Devver

Pixelated

Het zou al zoveel schelen als je een online linkje zou hebben ipv zo'n lap code...

Intentionally left blank


Verwijderd

Als ik je code en je pagina snel bekijk, dan heeft dat te maken met de mouseover en de mouseout. Volgens mij ben je bij het aanklikken van je submenu de functie vergeten om van kleur te wisselen in je hoofdmenu.

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Ik denk dat je te moelijk denkt; het is makkelijker om een soort reset-functie te laten lopen als een item uit het hoofdmenu aangeklikt wordt die eerst alle items naar wit zet, waarna je kijkt welke er aangeklikt is en diegene naar geel zet.