Salve a tutti,
sono ore che cerco inutilmente di far funzionare questo codice: il problema mi è chiaro, ma non trovo soluzione.
codice:
window.onload= function(){
document.getElementById('nav').onmouseout=function(){
moveToDiv(document.getElementById(cur));
};
var figli= document.getElementById('nav').childNodes;
for(var i=0; i<figli.length; i++){
if(figli[i].nodeType != "3"){
figli[i].addEventListener("mouseover",function (){
window.alert(figli[i]);
moveToDiv(figli[i]);
}, false);
}
}
/*document.getElementById('lnav_home').onmouseover=function(){
moveToDiv(document.getElementById('lnav_home'));
};
document.getElementById('lnav_azienda').onmouseover=function(){
moveToDiv(document.getElementById('lnav_azienda'));
};
document.getElementById('lnav_servizi').onmouseover=function(){
moveToDiv(document.getElementById('lnav_servizi'));
};
document.getElementById('lnav_contatti').onmouseover=function(){
moveToDiv(document.getElementById('lnav_contatti'));
};
*/
};
Quando questo codice viene eseguito l'alert ritorna sempre "undefined". Questo perchè cerca figli[i], ma i in quel momento è più grande della lunghezza dell'array figli. Quello che io stò cercando di ottenere invece è che ogni volta ogni "nodo" ricordi il valore che la variabile i aveva al momento in cui l'eventListener è stato aggiunto e chiami una funzione parametrizzata con quella precisa i, non con il valore che i assume alla fine. (in pratica vorrei dinamimicamente ottenere il codice tra i commenti /**/)
Spero possiate aiutarmi.
Grazie in anticipo