Goedemorgen iedereen,

Ik heb een probleempje met mijn EventListener, het ziet er als volgt uit:

<?
window.onload = setLinks;

function setLinks() {

var as = document.getElementById("content").getElementsByTagName("a");

for(var i = 1;i >= as.length;i++){
document.getElementById("link" + i).addEventListener("click",setupMouse,false);
}
}


function setupMouse() {
alert("de event handler doet het!");
}

?>


Wat gaat er mis?
Glazenbol vraag?

WAT gebeurt er? Krijg je errors in je console?

Iets meer details zijn zeker niet overbodig.
Ik heb op mijn pagina een aantal links staan met het id link1 t/m variabel.
Op het moment dat er op de link wordt geklikt moet er een slideshow starten. Maar zoals ik in het script boven testen wil, gebeurd er niks, ik zou nu een alert moeten krijgen.
1e reactie: Gebeurd zeker in IE?

Want IE support nog geen addEventListener, maar heeft zijn eigen attachEvent:
if( window.addEventListener ) {
  // Modern browser
  elem.addEventListener('click', eventHandler, false);
}
else if( window.attachEvent ) {
  // IE
  elem.attachEvent('onclick', eventHandler);
}
else {
  // Heel heel heel oud browser
  elem.onclick = eventHandler;
}

function eventHandler( e ) {
  // event code
}
Gebeurd niet in IE maar in FireFox

nu naar het volgende uitgebouwt met jou script:

<?

function setLinks() {

var as = document.getElementById("content").getElementsByTagName("a");

for(var i = 1;i >= as.length;i++){

if( window.addEventListener ) {
// Modern browser
document.getElementById("link" + i).addEventListener('click', setupMouse, false);
}
else if( window.attachEvent ) {
// IE
document.getElementById("link" + i).attachEvent('onclick', setupMouse);
}
else {
// Heel heel heel oud browser
document.getElementById("link" + i).onclick = setupMouse;
}

}
}

?>


-> link ID klopt
-> as array heeft inderdaad 5 links geteld
-> firebug geeft ook niks aan.

maar nog heeft hij geen alert message..

[size=xsmall]Toevoeging op 16/01/2012 10:42:26:[/size]

de bug zit 'm in de for loop...
groter en gelijk ipv kleiner of gelijk aan bij het 2e statement.

Bedankt voor jullie input.
Heb hem nu ook meteen werkend voor alle browers!

Reageren