Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/04/2008, 07:53
Avatar de tunait
tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: setTimeout no me funciona en Firefox :(

Cita:
Iniciado por Miguelso23 Ver Mensaje
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
__________________
Javascript Códigos - Bambú difunde