我试图预加载图像

时间:2010-12-12 00:32:55

标签: jquery

好的我抓住了方法C从这个问题预加载图像 best way to preload multiple images 我正在尝试将它实现为get 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]);
    }

2 个答案:

答案 0 :(得分:1)

首先,让我们修复一些语法错误,(缺少),这假定chaptertotalPages是已在其他地方定义的变量),它应如下所示:

$.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);

答案 1 :(得分:0)

您在第一个脚本的最后一行错过了)

更改

};

});

;) - 那是一个眨眼