隐藏和显示图像onload

时间:2012-01-09 09:28:04

标签: javascript events

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

$(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部分时,firebug告诉我document.images[i]undefined。有人能告诉我我做错了什么吗?

2 个答案:

答案 0 :(得分:3)

尝试类似:

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

并查看on

答案 1 :(得分:2)

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

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

您也可以尝试

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