2011-05-16 5 views
0

HTML5에서 사용하기 위해 만든 스크립트에 문제가 있습니다. 여기익명 함수를 나중에 사용할 매개 변수로 전달

function loadImage(loc,after,para){ 
     var img = new Image(); 
     img.src = loc; 
     if(typeof(after) != "undefined" && typeof(para) != "undefined"){ 
      img.onloadeddata = after(img,para); 
     }else if(typeof(after) != "undefined"){ 
      img.onloadeddata = after(img); 
     } 
     return img; 
} 

여기가 내가 할 노력하고있어 것은 다음 호출에 대한 매개 변수로 함수를 보낼 것입니다 그것을

window.globalFriends[i][2]=loadImage('http://graph.facebook.com/'+window.globalFriends[i][0]+'/picture', function (a){ 
    updateLoaders(); 
    loadingDrawPerson(a);}); 

를 호출하는 것입니다 기능입니다. 그것은 일종의 일이지만 이상한 방법입니다. 예를 들어; 모든 이미지가로드되지만 onloadeddata는 함수 방식을 일찍 시작하거나 함수가 loadImage 함수에 도달하기 전에 실행됩니다.

내 오작동 스크립트에 대한 귀하의 아이디어는 무엇입니까?

감사합니다 - 당신이 폴

+0

'typeof'은 운영자가 아닌 기능입니다. 사용 :'typeof after' – RobG

답변

3

라인과 같은 파라 매개 변수 누락 생각하십시오 결과를에 할당합니다. . 대신에, 당신은 onloadeddata에 기능을 지정하고자하는 경우", 이렇게 : 그 후 그룹 운영자에 대한 필요가 없습니다 그래서

img.onloadeddata = function() { after(img, para); }; 
1

을 읽는 것은 img.onload입니다 그리고 그것은 기능을 필요로한다.

img.onloadeddata = after(img,para); 

수단 "인수 imgpara으로 after 함수를 호출"

img.onload = function() { 
    after(img, para); 
} 

내가 당신의

window.globalFriends[i][2]=loadImage('http://graph.facebook.com/'+window.globalFriends[i][0]+'/picture', function (a){ 
    updateLoaders(); 
    loadingDrawPerson(a);}/*, para */); // <- where is para? 
관련 문제