Помогите с JS кодом СПС.
Привет Всем !
Задача такая получаю от PHP Json такого вида: ["photos\/small_14.jpg","photos\/small_6.jpg","photos\/small_7.jpg"] Хочу сделать постепенную загрузку ВСЕХ изображений с пелоадером... но он выводит только одну картинку. Как исправить ????? Спасибо <div id="miniatures"></div>
$(document).ready(function(){
var imgObj = new Image();
var i = 0;
//Рисую <div> в коротом background прелоадера
function loadImages(imgsJsonArr){
if (imgsJsonArr[i] != undefined ) {
$("#miniatures").append($("<div class = loader>"));
//загружаю изображени
viewLoadedImage(imgObj, imgsJsonArr);
}else{
//alert("STOP");
}
}
//загрузка и вывод изобрж
function viewLoadedImage(imgObj, imgsJsonArr){
$(imgObj).load(function () {
$(this).hide();
$('.loader').append(this);
$(this).fadeIn();
}).error(function(){
//$(this).attr("src","error.png");
}).attr('src', imgsJsonArr[i]);
//Если выключить выведет только одно изобржение как надо!!!
loadImages(imgsJsonArr, i++)
}
$.ajax({
type: "GET",
url: "ajax.php",
success: function(data){
var imgsJsonArr = JSON.parse(data);
//var imgsCountLength = imgsJsonArr.length;
loadImages(imgsJsonArr);
}
});
});
|
вместо loadImages(imgsJsonArr, i++)
i++; loadImages(imgsJsonArr[i]); |
imgObj-должен быть массивом
var imgObj =[]; и для всех i imgObj[i] = new Image(); |
Цитата:
loadImages(imgsJsonArr) |
Делай не делай imgObj массивлм не работает, выводит только прелоадеры.
а вот что показывает firebug
<div id="miniatures">
<div class="loader">
<img src="photos/small_14.jpg" style="display: none;">
<img src="photos/small_14.jpg" style="display: none; opacity: 0;">
</div>
<div class="loader">
<img src="photos/small_14.jpg" style="display: none; opacity: 0;">
<img src="photos/small_14.jpg" style="display: none; opacity: 0;">
</div>
</div>
var imgObj = new Image();
var i = 0;
function loadImages(imgsJsonArr){
if (imgsJsonArr[i] != undefined ) {
$("#miniatures").append($("<div class = 'loader'>"));
viewLoadedImage(imgObj, imgsJsonArr);
}else{}
}
function viewLoadedImage(imgObj, imgsJsonArr){
$(imgObj,i).load(function () {
$(this).hide();
$('.loader').append(this);
$(this).fadeIn();
}).error(function () {
//$(this).attr("src","imgs/loading.gif"); // WORCK
}).attr('src', imgsJsonArr[i]);
var imgObj = [];
imgObj[i] = new Image();
i++;
loadImages(imgsJsonArr)
}
|
hilton_413@mill.ru,
Гы Вы меняете текст на ходу - естественно фигня! в посте 1 = $(imgObj).load(function () { сейчас уже $(imgObj,i).load(function () { тады нун ставить Вашу запись в конце loadImages(imgsJsonArr, i++) |
| Часовой пояс GMT +3, время: 04:11. |