Я думаю, что я довольно близко, чтобы заставить его работать, но все еще не могу понять, что не так с моим кодом. Мне нужно бесконечно запускать функцию для случайного обмена изображениями src через серию из 13 или 15 различных изображений в зависимости от их размеров. Эта функция работает, но только один раз она не работает бесконечно, как я планирую, не получая «слишком рекурсивную» ошибку браузера. Вот код:Бесконечный цикл не работает
function SwitchImageLoop(image, imageSize){
if(imageSize == '110x110'){var randomNumber = Math.floor(Math.random()*15) + 1};
if(imageSize == '247x110'){var randomNumber = Math.floor(Math.random()*13) + 1};
image = document.getElementById(image);
var randomTimer = Math.floor(Math.random() * 3000) + 1000;
FadeImages(image, imageSize, randomNumber);
var endlessLoop = setTimeout(function(){SwitchImageLoop(image, imageSize)}, randomTimer);
}
function FadeImages(image, imageSize, randomNumber){
$(image).fadeOut(300, function(){
$(image).attr('src', '/halcyonic/images/collage_' + imageSize + '_' + randomNumber + '.jpg').bind('onreadystatechange load', function(){
if(image.complete) $(image).fadeIn(300);
});
});
}
Ошибка в консоли? А что называется 'SwitchImageLoop' в первый раз? –
Наряду с нижеприведенным ответом попробуйте сократить то, что делает код, чтобы изолировать вашу проблему. Попробуйте просто запустить бесконечный цикл, скажем, вывод чисел или что-то простое. Затем медленно добавьте функции, пока что-то не сломается. – Cramer
@ Карл-Андре Ганьон, нет, нет ошибки вообще. Все выглядит идеально на консоли. Если я немного изменю его (удаление функции() в последней строке первой функции), я получаю рекурсивную ошибку. –