2012-11-10 125 views
1

执行函数的循环。但是,以下工作 - 计数器在页面上的图像加载时计数。javascript:在for循环中调用函数

var progress = function() 
{ 
    for (var i = 0; i < slide.length; i++) 
    slide[i].onload = function(){ 
     actualprogress +=1, 
     loading.innerHTML = actualprogress 
    }; 
} 

而下面确实没有工作。当我打开页面时,柜台从头开始显示“[n]”(幻灯片的数量,例如“12”)。

var progress = function() 
{ 
    var action = function(){ 
    actualprogress +=1; 
    loading.innerHTML = actualprogress 
    } 
    for (var i = 0; i < slide.length; i++) 
    slide[i].onload = action(); 
} 

我想从for循环中调用一个函数,因为我需要在函数中做其他更多的事情。为什么这不起作用?

+0

也想想使用缩进 – PeeHaa

+1

我现在做了,对此感到抱歉,并感谢您告诉我! – basbebe

回答

2

在第一个代码中,您将函数指针分配给onload属性。

在第二个代码中,您将函数的返回值分配给onload属性,即null

这些之间有巨大的差异。该括号是在第二代码额外,后行动

onload = action() => onload = action 

干杯

+0

谢谢!当然! – basbebe

+0

干杯bro ,,,;) – Rikki

2

在第二个片段的最后一行,你调用该函数,而不是仅仅将其分配给slide[i].onload

只需将slide[i].onload = action();更改为slide[i].onload = action;即可。