Здравствуйте.
Есть проблемы с областью видимости.
Не могу понять почему переменная filesLength is undefined в функции addImage.
var dataArray = [],
filesLength;
// Функция загрузки изображений на предпросмотр
function loadInView(files) {
// Для каждого файла
$.each(files, function(index, file) {
// Создаем новый экземпляра FileReader
var fileReader = new FileReader();
// Инициируем функцию FileReader
fileReader.onload = (function(file) {
return function(e) {
// Помещаем URI изображения в массив
dataArray.push({name : file.name, value : this.result});
var filesLength = files.length;
console.log(filesLength); // здесь filesLength определена
addImage((dataArray.length-1, filesLength));
};
})(files[index]);
// Производим чтение картинки по URI
fileReader.readAsDataURL(file);
});
return false;
}
// Процедура добавления эскизов на страницу
function addImage(ind, filesLength) {
console.log(filesLength); // здесь filesLength is undefined
if (filesLength == 1) {
if (ind < 0 ) {
start = 0; end = dataArray.length;
} else {
// иначе только определенное изображение
start = ind; end = ind+1;
}
// Цикл для каждого элемента массива
for (i = start; i < end; i++) {
// размещаем загруженные изображения
$('.partners__title').append('<div id="img-'+i+'" class="image" style="background: url('+dataArray[i].value+'); background-size: cover;"> <a href="#" id="drop-'+i+'" class="drop-button">Удалить изображение</a></div>');
}
return false;
}
}
В чём ошибка?
Заранее благодарен.