1

执行函数的循环。但是,以下工作 - 加载页面上的图像时计数器计数。

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 循环中调用一个函数,因为我需要在函数中做其他和更多的事情。为什么这不起作用?

4

2 回答 2

2

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

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

它们之间有很大的不同。括号第二个代码中是额外的,在action之后。

onload = action() => onload = action

干杯

于 2012-11-10T18:06:30.183 回答
2

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

只需更改slide[i].onload = action();slide[i].onload = action;.

于 2012-11-10T18:07:17.623 回答