2013-07-02 2 views
1

2 개의 이미지 배열이 있지만 두 번째 이미지에 대해 onload가 실행되지 않습니다. 그러나 크롬 자원에서 이미지가 멋지게로드되어 있습니다. 무엇이이 문제를 일으킬 수 있습니까? 난 단지에 loaded 1을 얻을이미지 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'); 
     } 
    } 

console.log하지만 결코 loaded 2 :

내 코드입니다.

크롬 네트워크에서는 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

관련 문제