2012-05-12 24 views
1

は私が動的にsetIntervalを設定するために、内部ループのために費やされた合計時間を計算するにはどうすればよい jQueryの各ループの合計時間を計算するには?

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

の繰り返しループを考えてみましょうか?

ここで、クラスがtestの4つの要素がある場合、サイクルはsetInterval4000で完全に機能します。この値を動的に設定する変数を作成するにはどうすればよいですか?たとえば、それを6000に設定し、6つの要素がある場合などには、

私の問題は、idx functionの中にあるsetIntervalにはduration*idxという値を使用できないということです。あなたの行動を実行し、その後、

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

をそして:

答えて

5

あなたは要素の数をカウントする.lengthを使用することができます!


)(.size上.lenghtの使用を明確にするために編集:

.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; 
関連する問題