2013-07-02 35 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