eventListeners toevoegen met een for Loop

Status
Niet open voor verdere reacties.

benjamin333

Nieuwe gebruiker
Lid geworden
1 okt 2008
Berichten
2
Hoi Iedereen,

Ik had een vraag over javascript.

Ik ben bezig met een drop down menuutje. Nu nog voeg ik eventListeners handmatig toe aan de knoppen.

Code:
for(i=0; i < aantalMenuItems; i++)
{
	menuArray.push(document.getElementById("menuItem"+i));
} 

menuArray[0].onmouseover = function()
{
	showSubMenu(0);
}

Ik wil erg graag weten hoe ik dit doe met een for loop.

Zo werk het niet meer:

Code:
for(i=0; i < aantalMenuItems; i++)
{
	menuArray.push(document.getElementById("menuItem"+i));
                menuArray[i].onmouseover = function()
                {
	alert(i);
                }
}

Alvast bedankt!

Benjamin
 
Laatst bewerkt:
Ik denk dat het onderste scriptje perfect zou werken, als je iets anders zou nemen als commando dan "alert(i)". Het mag zeker niets met i te maken hebben, want tegen dat je lus geëindigd is, is hij i al lang vergeten. Neem bv. eens een gewone string, zoals "Test".
 
Inderdaad, maar je moet natuurlijk wel weten met welk nummer je te maken hebt in het event.

Probeer dit eens
Code:
for(i=0; i < aantalMenuItems; i++)
{
  var element = document.getElementById("menuItem"+i);
  if (!element)
    continue;

  element.number = i;
  menuArray.push(element);
  element.onmouseover = function()
  {
	alert(this.number);
  }
}
 
Inderdaad, maar je moet natuurlijk wel weten met welk nummer je te maken hebt in het event.

Probeer dit eens
Code:
for(i=0; i < aantalMenuItems; i++)
{
  var element = document.getElementById("menuItem"+i);
  if (!element)
    continue;

  element.number = i;
  menuArray.push(element);
  element.onmouseover = function()
  {
	alert(this.number);
  }
}

Bedankt voor jullie reacties, de oplossing van Glest werkt perfect, daar was ik naar op zoek!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan