Не могу сделать переменное увеличение с изображениями jquery load () - PullRequest
0 голосов
/ 19 января 2012

У меня проблема при увеличении переменной и добавлении новых данных в массив в функции загрузки jquery.Я думаю, что приращение и манипулирование массивом делается, когда все изображения загружены.Но мне нужно использовать переменную imgCount в коде.Так не могли бы вы дать мне решение?Извините за мой плохой английский)))

var imgObject = $('#temp_img img'); // dinamicaly loaded images 

var readyImages = [];
var imgCount = 0;

$(imgObject).bind("load", function() {

    if (this.width > 200 && this.height > 200) {

        readyImages.push(this.src);
        imgCount++;
    }

});

alert(imgCount) // returns 0, though must return 3

1 Ответ

1 голос
/ 19 января 2012

Заданный вами обратный вызов будет выполняться асинхронно, а оператор оповещения будет запущен немедленно. Что вам нужно сделать, это сначала подсчитать количество найденных изображений, а затем активировать некоторые функции, когда все они загружены. Что-то вроде:

var imgObject = $ ('# temp_img img'); var imgCount = imgObject.length - 1; var imgLoadedCnt = 0; var readyImages = []; $ (imgObject) .bind ("загрузка", функция () {

if (this.width > 200 && this.height > 200) {
    readyImages.push(this.src);\
    imgLoadedCnt ++;
    if (imgLoadedCnt == imgCount) {
        someFnToRunOnLoaded();
    }
}

});

...