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');
このコードをヘッダーセクションに配置しましたが、setTimeoutは1回だけ実行されます。
この問題は通常、たとえばajaxコールバックなどの再帰ループでsetTimeoutを使用し、再帰から何かを実行したい場合に、setTimeoutが過去と同じように機能すると予想されます。非再帰関数では必ずsetIntervalを使用してください。
各関数呼び出しの間に正確なスペースを維持したい場合は、setIntervalの代わりにsetTimeoutを使用します。 setIntervalはある時点で重複する可能性があり、これは多くの場合予期されない動作です。
(function test(){
setTimeout(function(){
console.log(1);
testt();
}, 2000)
})()