2010-12-12 4 views
0

Ok Я поймал метод C для предварительной загрузки изображений с этого вопроса best way to preload multiple images Я пытаюсь реализовать его в ГЭТ Json массивМоя попытка предзагрузку изображений

$.getJSON('/pageCall.php',{chapters:chapterNumber}, function(data) 
     { 
      chapter=data; 
      totalPages = chapter.length; 

      var options = ''; 
      $.each(chapter, function(index, array) { 
      images[index] = new Image(); 
      images[index].src = array['imageLocation']; 
}); 
}; 

, но когда я пытаюсь вызвать изображения с помощью следующий метод ничего не появляется

function callImage(ImageNo) 
    { 
     $('#mangaImage').attr('src', images[ImageNo]); 
    } 

ответ

1

Во-первых, давайте исправить некоторые ошибки синтаксиса, (отсутствующие ), и это предполагает, что chapter и totalPages являются переменными определенная в другом месте), он должен выглядеть следующим образом:

$.getJSON('/pageCall.php',{chapters:chapterNumber}, function(data) { 
    chapter=data; 
    totalPages = chapter.length; 
    var options = ''; 
    $.each(chapter, function(index, array) { 
     images[index] = new Image(); 
     images[index].src = array['imageLocation']; 
    }); 
}); 

Обратите внимание, что это также предполагает структуру, как это:

[{"imageLocation": "url.jpg"},{"imageLocation": "url.jpg"}] 

.... если он отличается, то цикл будет отличаться.


Кроме того, что в массиве есть образ, а не строка ... так что вам нужно, чтобы получить .src свойство от него. Вместо этого:

$('#mangaImage').attr('src', images[ImageNo]); 

Оно должно быть:

$('#mangaImage').attr('src', images[ImageNo].src); 
0

Вы не нашли ) на последней строке первого сценария.

Изменить

}; 

Для

}); 

;) - это подмигивание

Смежные вопросы