Foros del Web » Programando para Internet » Javascript »

¿por que no me funciona el setTimeout?

Estas en el tema de ¿por que no me funciona el setTimeout? en el foro de Javascript en Foros del Web. Estoy definiento una función en la que tiene que haber un retardo: Si hago esto SI que me funciona. function activar(nombreImagen) { var permiso= false; ...
  #1 (permalink)  
Antiguo 05/10/2004, 04:27
Avatar de MA40  
Fecha de Ingreso: septiembre-2004
Mensajes: 23
Antigüedad: 19 años, 7 meses
Puntos: 1
¿por que no me funciona el setTimeout?

Estoy definiento una función en la que tiene que haber un retardo:

Si hago esto SI que me funciona.

function activar(nombreImagen) {
var permiso= false;
permiso=true;
if ((document.images) && (permiso == true)) {
document[nombreImagen].src=activado.src; }
}

Pero si hago esto NO me funciona.

function activar(nombreImagen) {
var permiso= false;
setTimeout("permiso=true",1000);
if ((document.images) && (permiso == true)) {
document[nombreImagen].src=activado.src; }
}

¿Alguien sabe por qué puede ser?
¿Podriais ayudarme?.

Muchas gracias.
MA40.

Última edición por MA40; 05/10/2004 a las 04:50
  #2 (permalink)  
Antiguo 05/10/2004, 04:33
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Qué tal,

es porque aunque le cambies el valor a la variable al cabo de un segundo, la función yá se ha ejecutado y no se entera del cambio, habrías de volver a llamar a la función. Pero si vuelves a llamar a la función te pondrá de nuevo la variable a false, pues es la primera línea que lee.

Saca la primera línea fuera de la función y agrega al setTimeout que ejecute de nuevo la función


var permiso= false;
function activar(nombreImagen) {
nombreImagen2 = nombreImagen
setTimeout("permiso=true;activar(nombreImagen2)",1 000);
if ((document.images) && (permiso == true)) {
document[nombreImagen].src=activado.src; }
}

prueba así
  #3 (permalink)  
Antiguo 05/10/2004, 04:51
Avatar de MA40  
Fecha de Ingreso: septiembre-2004
Mensajes: 23
Antigüedad: 19 años, 7 meses
Puntos: 1
PERFECTO!!!

Lo he prebado y funciona.

Muchisimas gracias tunait.
MA40.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:55.