Esto viene de este post
Porque no puedo modificar valores de onMouseOut onMouseOver?
El caso es que no se puede asignar una función de una forma lógica como por ejemplo:
Código HTML:
document.getElementById("arrowa1").onmouseout = "alert('test')";
Código HTML:
document.getElementById("arrowa1").onmouseout = function() {alert('test')};
El problema es que si bien function(){alert('test')}; funciona, si la programación exige pasar una variable dentro del alert esta se pierde o funciona de una forma no esperada, por ejemplo:
Código HTML:
function select_this(id) {
var li,file;
for(li=1;li<6;li++)
{
file="square";
if (li==1) file="arrow_left";
if (li==5) file="arrow_right";
document.getElementById("arrow"+li).src="images/"+file+"_blue.png";
document.getElementById("arrowa"+li).onmouseout=function() {alert("valor="+li)};
}
}
document.getElementById("arrowa"+li).onmouseout
va tomandos los valores de alert("valor="+li)
sin embargo devuelve 6 que es el valor final de li al terminar el bucle.
Saludos y Gracias
PD: no necesito corregir este codigo, solo entender el porque.
:

