Cita:
Iniciado por Miguelso23
Resulta que dentro del setTimeout no se puede hacer referencia a variables definidas fuera (Esto solamente en Firefox)
Sí que se puede; lo que pasa es que si tienes definida la variable error como global (fuera de la función) y en la función le asignas la sentencia
var delante a la variable te crea una nueva variable local dentro de la función. Es decir, tendrás dos variables
error, una global y otra local y la función estará trabajando con la local
Fíjate en este ejemplo
Código:
var error
function error(mensaje) {
var error = document.getElementById('error');
error.style.display = "block";
error.innerHTML = mensaje;
setTimeout("error.style.display = 'none'",2000);
}
Pruébalo con y sin el var marcado en rojo. Sin el var marcado en rojo trabaja con la variable global y funciona ok. Con el var en rojo crea una local y salta el error que tenías antes.
Un saludo