2012-01-09 201 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