Передать переменную в функцию в JQuery AJAX обратного вызова успеха

Я пытаюсь предварительно загрузить некоторые изображения с помощью вызова jQuery AJAX, но у меня возникают реальные проблемы с передачей строки (url) в функцию в функции успеха вызова AJAX (если это имеет смысл).

Вот мой код как есть:

//preloader for images on gallery pages
window.onload = function() {
    setTimeout(function() {     
        var urls = ["./img/party/"]; //just one to get started

        for ( var i = 0; i < urls.length; i++ ) {
            $.ajax({
                url: urls[i],
                success: function(data,url) {
                    $(data).find("a:contains(.jpg)").each(function(url) {                               
                        new Image().src = url + $(this).attr("href");
                    });
                }
            });
        };  
    }, 1000);
};

Можно увидеть мою (неудачную) попытку передать URL через.each() вызов -url в конечном итоге принимает значение увеличения целых чисел. Не уверен, почему или с чем это связано, может быть, количество файлов JPG?

... в любом случае, он должен принимать одно значение в моем исходном массиве URL.

Спасибо за любую помощь - мне всегда кажется, что с этими обратными вызовами у меня немного искажается.

Прогрессбар?

Итак, я немного покопался, учтя комментарии @ron tornambe и @PiSquared и сейчас нахожусь здесь:

//preloader for images on gallery pages
window.onload = function() {
    var urls = ["./img/party/","./img/wedding/","./img/wedding/tree/"];

    setTimeout(function() {
        for ( var i = 0; i < urls.length; i++ ) {
            $.ajax({
                url: urls[i],
                success: function(data) {
                    image_link(data,i);
                    function image_link(data, i) {
                        $(data).find("a:contains(.jpg)").each(function(){ 
                            console.log(i);
                            new Image().src = urls[i] + $(this).attr("href");
                        });
                    }
                }
            });
        };  
    }, 1000);       
};

Я пытался положитьimage_link(data, i) здесь и везде (в каждой вложенной функции и т. д.), но я получаю один и тот же результат: значение дляi только когда-либо зарегистрирован как 3. Я подозреваю, что это потому, что все ссылки наi указывают на то же самое, и к тому времени асинхронная задача фактически достигаетimage_link(data, i) for... цикл завершен и завершен (и, следовательно, имеет значение 3). Излишне говорить, что это даетurls[i] как «неопределенный».

Любые (более) советы, как я могу обойти это?

Ответы на вопрос(7)

Ваш ответ на вопрос