2011-05-16 78 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' – RobG 2011-05-16 23:36:43

回答

3

這樣一行:

img.onloadeddata = after(img,para); 

辦法 「調用after帶有參數的函數imgpara」並將結果分配給。」相反,如果你想要的功能分配給onloadeddata,這樣做:

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

這是img.onload它需要的功能。

嘗試

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? 
相關問題