我有一个幻灯片显示,以间隔5000更改图像。

显示一个图像和另一个图像之间的进度条的功能如下:

function timebar(){
    $('#timebar').stop().css({width:0});
    $('#timebar').animate({width:'100%'},5000);
}


我在幻灯片放映后调用它,以便它们同时处理。

我希望循环此功能,以便为每个幻灯片重置时间栏:

function timebar(){
    $('#timebar').stop().css({width:0});
    $('#timebar').animate({width:'100%'},5000);
    setTimeout(timebar(),5000);
}


但是,完成此操作后,出现错误Maximum call stack size exceeded

如何让此功能每隔5000 ms重复一次?

最佳答案

您需要将函数引用传递给setTimeout,当前您正在递归地调用timebar()函数,而setTimeout根本没有用。

您需要使用

setTimeout(timebar,5000);


代替

setTimeout(timebar(),5000);

10-07 20:31