Acabo de empezar a buscar en Javascript, así que espero que esto sea algo simple. Quiero hacer una presentación de diapositivas de imágenes que se reproduce automáticamente. Esto es muy simple, y hay algunos tutoriales, pero por alguna razón no he podido hacer que funcione. Esto es lo que tengo:Recursión de Javascript settimeout
var image1 = new Image();
var image2 = new Image();
var image3 = new Image();
image1.src = "images/website6.jpg";
image2.src = "images/website7.jpg";
image3.src = "images/sunset.jpg";
var images = new Array(
"images/website6.jpg",
"images/website7.jpg",
"images/sunset.jpg"
);
setTimeout("delay(images,0)",2000);
function delay(arr,num){
document.slide.src = arr[num % 3];
var number = num + 1;
setTimeout("delay(arr,number)",1000);
}
La imagen que intento cambiar tiene una diapositiva de id. Y también tengo alguna evidencia de que funciona. Lo que ocurre es que se carga la primera imagen. Luego se carga la segunda imagen (lo que significa que la llamada setTimeout original debe estar funcionando). Entonces no pasa nada Lo que para mí sugiere que es la recursión que no está funcionando.
Estoy muy familiarizado con la recursividad en otros idiomas, así que creo que debe ser solo una sintaxis o algo así, pero parece que no puedo resolverlo. Gracias por cualquier ayuda.
anule la selección de los parámetros en el segundo setTimeout. esa sería mi primera suposición. – Cronco
@Cronco curiosamente, si hago eso no obtengo la segunda imagen ... lo que sugiere que eso es lo que hace que la imagen cambie una vez. Además, cada ejemplo que he visto tiene comillas, por eso los incluyo. – Paul
El problema al citar las variables es que el temporizador ejecuta la cadena completa '" delay (arr, number) "' en lugar de convertir el variables a sus valores almacenados - por eso no funcionaría el comit (si bien aún tendría que citarlos como así .... '" delay ('"+ arr +"', '"+ number +"') '. Sin embargo, punto discutible: la respuesta de Pointy es mejor. Solo estoy explicando lo que está pasando. –