如果图像已经加载,如何传递.load()?

时间:2014-09-16 10:42:49

标签: javascript jquery

我有以下问题。

如果我点击图标,我有一个显示图像的Web应用程序。

$('#ModalArtImage img').load(function(){ 
    $('#ModalArtImage').css('visibility','visible').zIndex(9999);
});

这很好。

要关闭刚刚开启的DIV(Imagecontainer),我使用此

$('.imgWindow').on('click', function(){
    $(this).parent().css('visibility','hidden');
});

.imgWindow是总窗口(Imagecontainer)。

如果我关闭Imagecontainer并再次按下图标,则图像已经加载 首次点击,它无法访问.load(),因此不再显示imagecontainer。

我使用.load()的原因是,我不想在应该显示的图像完全加载之前显示图像容器。所以我尝试通过.load('img')检查它实际上是什么。

有没有办法解决这个问题?

修改

现在解决这个问题:

if( $('#ModalArtImage img').prop('complete') )
{
    $('#ModalArtImage').css('visibility','visible').zIndex(9999);
}
else
{
    $('#ModalArtImage img').load(function(){ 
        $('#ModalArtImage').css('visibility','visible').zIndex(9999);
    });
}

thx to sahbeewah

1 个答案:

答案 0 :(得分:2)

complete个元素上有一个img属性,用于显示图片是否已完成加载。

var showImage = function() {
    $('#ModalArtImage').css('visibility','visible').zIndex(9999);
};

var $img = $('#ModalArtImage img');

if ($img.prop('complete')) {
    showImage();
} else {
    $img.load(showImage);
}