如何使用预加载的图像并添加到DOM

时间:2014-07-19 07:04:42

标签: javascript jquery

这里我尝试使用jquery下载图像并将下载的图像添加到DOM。要检查图像是否已加载,请使用" https://github.com/desandro/imagesloaded"

为此我采取了临时div(temp-images-div)并在那里添加图像。然后我将src替换为实际的div(multimedia-div)。

function populateImageResults(allImagesData) {
    // populate response data for later use 
    responseData = allImagesData;

    //append html as hidden element to body 
    var html = '';
    jQuery.each(responseData, function(index, val) {
        html += '<img id=\"image-'+index+'" src="'+val.THUMBURL+'">';
    });
    html = '<div id="temp-images-div" style="display:none">'+ html + '</div>';
    $('body').append(html);

    $('img[id^="image-"]').imagesLoaded()
        .progress(function (instance, image) {
            var imgId = image.img.id;
            if (image.isLoaded) {
                var imgSrc = image.img.src;
                $('#lemmon-slider-id  ul').append('<li><img id="'+imgId+'" src="'+imgSrc+' style="height:100px"></li>');
            } else {
                // if image not loaded then store broken image id into array
                brokenImageIDs.push(imgID);
            }
        })
        .always(function() {
            // always event will be triggered after all images have been either loaded or confirmed broken
            // currently do nothing
            // FIXME - load broken images here

        });

    // delete temporary div '#temp-images-div'
    jQuery("#temp-images-div").remove();

    // display multimedia div
    jQuery('#multimedia-div').css('display','block');
}

现在我正在检查图像正在加载两次。但我想使用预加载的图像。我可以理解为什么它加载了两次,但我不想要这个。

所以我的问题是如何使用已加载的图像?我需要保持html的结构类似于上面的jquery代码中提供的。

<Ul>
<li><img ..></li>
<li><img ..></li>
....
...
</ul>

0 个答案:

没有答案