2011-05-16 86 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? 
相关问题