2013-07-02 69 views
1

我有一個2圖像的數組,但onload不會觸發第二個圖像。但在鉻資源的形象是那裏都很好,並加載...什麼可能會導致這種情況?圖像onload不工作在JavaScript

這是我的代碼:

var test = new Array(); 
    test[0] = new Image(); 
    test[0].src = 'tile1.png'; 
    test[1] = new Image(); 
    test[1].src = 'tile2.png';  


    test[0].onload = function(){  
     console.log('loaded 1');  

      test[1].onload = function(){ 
       console.log('loaded 2'); 
     } 
    } 

我只得到loaded 1console.log,但從來沒有loaded 2

然而,在Chrome網絡中,它顯示tile2.png那麼爲什麼我的onload函數不會觸發?

回答

3

您的第二個onload函數是在第一個函數中聲明的,所以刪除它並放在外面。

var test = new Array(); 
test[0] = new Image(); 
test[0].src = 'tile1.png'; 
test[1] = new Image(); 
test[1].src = 'tile2.png';  


test[0].onload = function(){  
    console.log('loaded 1'); 
} 

test[1].onload = function(){ 
    console.log('loaded 2'); 
} 
+0

請問函數和函數外部的行爲有什麼不同? – Sir

+0

@Dave唯一的區別是,如果onload函數是在第一個onload函數中聲明的,那麼第二個onload函數永遠不會被附加到onload事件,直到第一個圖像加載後略微有點。在那個時候,你很可能完全錯過第二個圖像的onload事件,在這種情況下,第二個圖像的onload事件處理程序將不會執行任何操作。 –

+0

啊,我看到感謝解釋:) – Sir