Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/08/2011, 03:21
Profesor_Lambetain
 
Fecha de Ingreso: septiembre-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: setInterval que se ejecuta sólo 2 veces...

Cita:
Iniciado por laratik Ver Mensaje
Hola Profesor_Lambetain ¿Sobre que navegador te ejecuta solo dos veces? he probado tu script en IE9 y Chrome 13, al parecer funciona correctamente pues después de más de un minuto me sigue cambiando de imagen cada 5 segundos. Tambien puedes probar a utilizar recursividad con setTimeout, lo cual lograra un efecto parecido al utilizar setInterval:


Pues no se si al momento de decir apaños te refieres a la utilización de inputs type hidden (lo cual me parece muy "chapuza"), pues sin recargar la pagina lo estas haciendo bien al utilizar javascript. Si es a eso a lo que te refieres claro que existe una forma más "elegante" de resolver tu problema:

Código Javascript:
Ver original
  1. <SCRIPT TYPE="text/javascript">
  2. function cambiarImagen(i) {
  3.     if(i==15) {
  4.         i = 0;
  5.     }
  6.     document.images.item(0).src = (i+1)+".jpg";
  7.     document.images.item(1).src = (i+2)+".jpg";
  8.     document.images.item(2).src = (i+3)+".jpg";
  9.     document.images.item(3).src = (i+4)+".jpg";
  10.     document.images.item(4).src = (i+5)+".jpg";
  11.     setTimeout(function(){cambiarImagen(i+5)},5000);
  12. }
  13. </SCRIPT>

llamada a la funcion:

Código HTML:
<body bgcolor="FFFFFF" onLoad="cambiarImagen(0);"> 
Hola laratik: he probado tu script con setTimeout y me funciona perfectamente (en mi IE8, que no ni 6 ni 7). Tu script es, desde luego, más elegante, más conciso, más racional, y no hace uso de formulario con campos hidden como yo había concebido al principio.

Me pregunté si una función podría invocarse a sí misma (recursividad) pero, sin probar la idea, la dejé de lado para no "introducir" otro factor desconocido por mí... otra cosa útil que me has enseñado.

Mil gracias nuevamente.