Помогите с 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, время: 18:37. |