2012-01-09 204 views
0

我正在研究一个简单的脚本,它会隐藏我的图像,直到它们完全加载,然后显示它们。隐藏和显示图像

$(document).ready(function(){ 
    for(var i=0; i<document.images.length; i++){     
     document.images[i].style.visibility="hidden"; 
     document.images[i].addEventListener("load", function(i){ 
      document.images[i].visibility="visible"; 
     }, false); 
    } 
}); 

出于某种原因,当循环获取到addEventListener部分,萤火告诉我,document.images[i]undefined。有人能告诉我我做错了什么吗?

+2

? – SergeS 2012-01-09 09:29:52

+1

我可以问,因为看到你已经在使用jQuery,为什么你没有使用它的代码的其余部分? – Yoshi 2012-01-09 09:30:59

+0

刚刚意识到应该是document.images [i] .style.visibility。但是,不解决问题。 – Sceletia 2012-01-09 09:31:34

回答

1

尝试使用this使用addEventListener处理程序中。

document.images[i].addEventListener("load", function(){ 
       this.visibility="visible"; 
       }, false); 

为什么你不使用jQuery的事件系统,您还可以尝试

document.images[i].onload = function(){ 
      this.visibility="visible"; 
     }; 
+0

非常感谢dku。 – Sceletia 2012-01-09 09:48:51

+0

gr8 ..不客气的兄弟.. – 2012-01-09 09:50:18

3

试着这么做:

$(function() { 
    $('img').css('visibility', 'hidden'); 
    $('img').on('load', function() { 
    $(this).css('visibility', 'visible'); 
    }); 
}); 

,并看看on

+0

谢谢Yoshi,会做。 – Sceletia 2012-01-09 10:52:45