Trong một đơn giản setInterval
Làm thế nào để bắt đầu vòng lặp setInterval ngay lập tức?
setInterval(function() {
// Do something every 9 seconds
}, 9000);
Hành động đầu tiên sẽ xảy ra sau 9 giây (t=9s
). Làm thế nào để buộc vòng lặp thực hiện hành động đầu tiên ngay lập tức (t=0
)?
Tôi nghĩ rằng đó là do cơ chế của setInterval
để có vòng lặp Delay - Action - Delay - Action ...
; thay vì vòng lặp Action - Delay - Action - Delay ...
.
EDIT: chức năng của tôi thực sự là một vòng lặp như
setInterval(function(){
$('.test').each(function(idx){
var duration = 1000;
$(this).delay(duration*idx);
Some stuff here
});
}, 4000);
Giải pháp đơn giản, dễ dàng, cảm ơn! –
Phần đầu tiên của câu trả lời này sẽ chậm dần, vì một 'setInterval' mới được tạo thành mỗi vòng lặp. Điều này có thể được sửa bằng cách thay thế 'window.setInterval' bằng' setTimeout'. – spikespaz