如何使setTimeout函数连续循环?
例如
setTimeout(function(){
$(".slide2").hide();
$(".slide").show();
setTimeout(function(){
$(".slide").hide();
$(".slide2").show();
}, 1000);
}, 1000);
答案 0 :(得分:6)
setInterval
实际上是邪恶的,如果setInterval中的代码花费的时间比你设置的时间长,它将在函数完成所有操作之前创建另一个进程。因此,选择setTimeout
实际上更好。
要在setTimeout
中创建函数循环,请使用以下语法:
function function1() {
console.log({} + [] + " = {} + []"); // run this it is actually funny
}
function runner() {
function1();
setTimeout(function() {
runner();
}, time);
}
runner();
答案 1 :(得分:3)
您可以减少嵌套,并且可能使用setTimeout并且切换将处理其余部分(在执行之前默认显示您的第一个元素。)。
function slideEm()
{
$(".slide2").toggle();
$(".slide").toggle(); // Make this visible first
window.setTimeout(slideEm, 1000);
}
slideEm();
或使用setInterval
function slideEm()
{
$(".slide2").toggle();
$(".slide").toggle(); // Make this visible first
}
$(function(){
$('.slide').show(); //Using css hide both of them and show this first
window.setInterval(slideEm, 1000); // start the callback loop with a sec interval
});
答案 2 :(得分:2)
改为使用setInterval
和toggle()
。
setInterval(function () {
$(".slide2").toggle();
$(".slide").toggle();
}, 1000);
<强> jsFiddle example 强>