setTimeout
should only run once. You're looking for setInterval
.
var loop_handle = setInterval(slide, 3000);
Also, the second argument should be a number, not a string. When the function call doesn't require any arguments, it's better to reference to the function instead of using a string. A string would be converted to a function. This function will be executed within the scope of the window.
setInterval("slide()", 3000);
//becomes
setInterval(Function("slide();"), 3000);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…