|
Проблема с imagesPreview
Здравствуйте, не могу понять почему когда я загружаю к примеру 3 картинки (через Multiple), то в превью они отображаются не по порядку как я выбрал. Т.е. 2,1,3
Как можно сделать чтобы отображались по порядку то что я выбрал через CTR ? (1,2,3)
$(function() {
var imagesPreview = function(input, placeToInsertImagePreview) {
if (input.files) {
var filesAmount = input.files.length;
for (i = 0; i < filesAmount; i++) {
var reader = new FileReader();
reader.onload = function(event) {
var hrava = Math.random();
$($.parseHTML('........')).attr('src', event.target.result).appendTo(placeToInsertImagePreview);
}
reader.readAsDataURL(input.files[i]);
}
}
};
$('#gallery-photo-add').on('change', function() {
imagesPreview(this, 'div.gallery');
});
});
|
deatlink,
onload -- работает асинхронно -- когда картинка загрузится |
хотя я вижу что если через CTR выбираю первую, потом вторую, то мною выбранная вторая получается первой...
|
т.е выбираю через ctr la.png, ka.png, ca.png
то в строке "ca.png" "ka.png" "la.png" по этому мною выбранную первую la.png отображает последней. Можно как то вывести с конца? т.е. первую мною выбранную |
deatlink,
:-? |
понял что вы написали, onload отобразит картинки которые загрузились. Как сделать чтобы отобразить результат после того как все картинки загрузились?
|
deatlink,
в onload заполнять массив картинками и проверять его длину если arr.length== numer то ... |
я в этом очень слаб, не могли бы помочь это сделать? :)
|
просмотр загружаемых картинок
deatlink,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css"> .gallery img{
height: 100px;
width: auto;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var imagesPreview = function(input, placeToInsertImagePreview) {
var count = 0;
var arr = [].map.call(input.files, function(src, i) {
count = i + 1;
var reader = new FileReader;
reader.onload = function(event) {
arr[i] = event.target.result;
count--;
if (!count) arr.forEach(function(src) {
$("<img>", {
src: src
}).prependTo(placeToInsertImagePreview)
})
};
reader.readAsDataURL(src);
return reader
})
};
$("#gallery-photo-add").on("change", function() {
imagesPreview(this, "div.gallery")
})
});
</script>
</head>
<body>
<div class="gallery"></div>
<input id="gallery-photo-add" name="" type="file" multiple="">
</body>
</html>
|
когда выбираю в окне первый файл, а потом другие то первый в конец выводится(
|
| Часовой пояс GMT +3, время: 22:15. |
|