2012-05-12 88 views
1

考慮的如何計算jQuery中每個循環的總時間?

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

重複循環如何計算花費的內部循環來設置setInterval動態總時間?

在這裏,如果我們有4個元素與一流的test,週期與4000setInterval完美的作品。我怎樣才能讓一個變量動態地設置這個值?例如,設置它6000,當我們有6個元素時,等等。

我的問題是,我不能使用duration*idx的值爲setInterval,因爲它在idx function之內。

回答

5

您可以使用.length計算元素的數量:

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

,然後執行你的行動!


EDITED,澄清使用.lenght超過.size():

.size()方法是功能上等同於.length屬性;但是,.length屬性是首選,因爲它沒有函數調用的開銷。

+2

也許'長度'更快。 – VisioN

+0

@VisioN ['size()'](http://api.jquery.com/size/)只是返回長度。您可以通過'length'的附加函數調用保存自己。 – Joseph

+0

有!更新答案!感謝啓發:) – Zuul

2

最簡單的方法是有diff。在開始和延遲時間之間。

start = new Date().getTime(); 
elapsed = new Date().getTime() - start;