该setTimeout()
函数不会暂停当前执行,它会将您提供的函数的未来执行排队。要在页面加载时执行某些操作,请使用文档就绪处理程序。
我想你想要这样的东西:
$(document).ready(function() {
var $divs = $("div.commonClass"),
i = 0;
function processNextDiv() {
namedFunction($divs.eq(i));
i = (i + 1) % $divs.length;
setTimeout(processNextDiv, 3000);
}
processNextDiv();
});
这首先选择所有 div(我建议通过给它们一个公共类来这样做,但你可以按照你喜欢的任何方式这样做),然后设置一个基于超时的循环,调用namedFunction()
将当前 div 传递给它以进行处理。那么你可以有:
function namedFunction($div) {
$div.animate(...); // process current div
}
或者您可以将动画或其他 div 处理代码直接放在该processNextDiv()
函数中,具体取决于您是否希望能够namedFunction()
从其他地方调用。
演示:http: //jsfiddle.net/hWLTb/