Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/07/2006, 14:10
almus
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 4 meses
Puntos: 0
Para concretizar más el problema... sabemos que la función setTimeout ejecuta una sola vez las instrucciones que se pasan como primer argumento, una vez haya transcurrido el tiempo marcado en el segundo argumento. Existe un tercer argumento opcional.

Por ejemplo:
setTimeout("count++';",2000);
Pasados 2 seg. nos redirecciona a la página indicada.

Si las instrucciones que queremos ejecutar incluyen una función con paso de variables, podemos hacerlo del siguiente modo.

setTimeout("nombrefuncion(" + nombrevar + ")",tiempo); //nótese el uso de las comillas

En el código que estoy generando, lo que no funciona es el paso del primer parámetro, que no es más que un método de un objeto sin argumentos.

He probado haciendo

setTimeout(this.Show(), 200); //nótese sin comillas

la llamada la hace correctamente pero no respeta el tiempo de retardo, 200 msegs.

Tampoco funciona por ejemplo

setTimeout(this.+"Show();", 200);

No se pueden existir limitaciones con el paso de objetos.

caricatos
He visto tu web... lo siento pero no he llegado a entender bien tu propuesta. ¿Puedes aclararmela, por favor?

SiR.CARAJ0DIDA
La llamada a la función Show() es recursiva por lo que no puedo redefinir el método dentro de sí misma, ¿no crees? Otra cosa, ¿qué inconveniente tiene usar en tu código el propio this en lugar de me? Y por último, ¿por qué 2000 lo entrecomillas? Quizás haya cosas que se me escapan...

Sigo investigando... gracias