考虑一个重复循环

setInterval(function(){
$('.test').each(function(idx){
    var duration = 1000;
    $(this).delay(duration*idx);
    Some stuff here
});
}, 4000);


如何计算内部循环动态设置setInterval所花费的总时间?

在这里,如果我们有4个元素的test类,则该循环与setInterval4000完美配合。如何创建变量以动态设置此值?例如,当我们有6个元素时,将其设置为6000,依此类推。

我的问题是,我不能将duration*idx的值用于setInterval,因为它在idx function内部。

最佳答案

您可以使用.length来计数元素的数量:

var total  = $('.test').length,
    timer  = 1000,
    result = parseInt(timer*total);


然后执行您的动作!



编辑,以澄清.lenght在.size()上的使用:

.size()方法在功能上等效于.length属性。但是,首选.length属性,因为它没有函数调用的开销。

09-20 12:36