function slide()
{
    if($('.current').is(':last-child')){
        $('.current').removeClass('.current');
        $('#imgholder').first().addClass('.current');
        $('#imgholder').animate({left: '3920px'});
    }
    else{
        $nxt=$(".current");
        $(".current").removeClass("current");
        $nxt.next().addClass("current");
        $('#imgholder').animate({left: '-=980'},{duration: 'slow', easing: 'easeOutBounce' });
        }
}
var loop_handle= setTimeout("slide()",'3000');

我已将此代码放在 header 部分中,并且setTimeout仅运行一次。

最佳答案

setTimeout应该只运行一次。您正在寻找setInterval

var loop_handle = setInterval(slide, 3000);

另外,第二个参数应该是数字,而不是字符串。当函数调用不需要任何参数时,最好引用函数而不是使用字符串。字符串将被转换为函数。该功能将在窗口范围内执行。
  setInterval("slide()", 3000);
//becomes
  setInterval(Function("slide();"), 3000);

10-05 21:08
查看更多