La funzione seguente ottiene l'elemento di destinazione in un menu a discesa:event.target accesso in IE8 unobstrusive Javascript
function getTarget(evt){
var targetElement = null;
//if it is a standard browser
if (typeof evt.target != 'undefined'){
targetElement = evt.target;
}
//otherwise it is IE then adapt syntax
else{
targetElement = evt.srcElement;
}
//return id of <li> element when hovering over <li> or <a>
if (targetElement.nodeName.toLowerCase() == 'li'){
return targetElement;
}
else if (targetElement.parentNode.nodeName.toLowerCase() == 'li'){
return targetElement.parentNode;
}
else{
return targetElement;
}
Inutile dire, funziona in Firefox, Chrome, Safari e Opera, ma non lo fa in IE8 (e credo anche nelle versioni precedenti). Quando provo ad eseguire il debug con IE8 ottengo l'errore "Utente non trovato" sulla linea:
targetElement = evt.srcElement;
insieme ad altri errori successivi, ma credo che questa è la linea chiave. Qualsiasi aiuto sarà apprezzato.
Siamo spiacenti, per qualche motivo la formattazione non è corretta.
Qui è la funzione di nuovo
function getTarget(evt){
var targetElement = null;
//if it is a standard browser get target
if (typeof evt.target != 'undefined'){
targetElement = evt.target;
}
//otherwise it is IE then adapt syntax and get target
else{
targetElement = evt.srcElement;
}
//return id of <li> element when hovering over <li> or <a>
if (targetElement.nodeName.toLowerCase() == 'li'){
return targetElement;
}
else if (targetElement.parentNode.nodeName.toLowerCase() == 'li'){
return targetElement.parentNode;
}
else{
return targetElement;
}
} // fine getTarget
Si dovrebbe usare jQuery. – SLaks
Sì, questo sarebbe il modo più semplice;) – Mirko