2012-01-24 33 views

Odpowiedz

11

Żadna z odpowiedzi tak daleko wziąć pod uwagę, że tylko chce się stać przez 15 sekund, a następnie zatrzymać ...

$(function() { 
    var intervalID = setInterval(function() { 
     // Do whatever in here that happens every 3 seconds 
    }, 3000); 
    setTimeout(function() { 
     clearInterval(intervalID); 
    }, 18000); 
}); 

Stwarza to interwał (co 3 sekundy), który działa niezależnie od kodu można umieścić w funkcji. Po 15 sekundach interwał zostaje zniszczony (początkowe 3 sekundowe opóźnienie, a więc całkowity czas działania 18 sekund).

+1

+1, ale prawdopodobnie chcesz nieco zwiększyć '15000'; w przeciwnym razie funkcja najprawdopodobniej uruchomi się tylko cztery razy i domyślam się, że ma to być pięć razy. – ruakh

+0

Dobra uwaga - powinno być co najmniej 18000. Odpowiedź zmodyfikowana - dzięki :) – Archer

+0

Er, myślałem bardziej jak "15500" - tyle, aby dać miły margines błędu. – ruakh

0

Można również użyć metody setTimeout, która obsługuje takie rzeczy jak anulowanie licznika czasu.

Patrz: http://msdn.microsoft.com/en-us/library/ie/ms536753(v=vs.85).aspx

+0

Nie ignoruj ​​tego, może być używany z wywołaniem rekursywnym. Chociaż setinterval jest w tym przypadku bardziej poprawny. Simon: Tam jest metoda clearinterval oraz btw :) – Johan

+0

+1. 'setTimeout' jest w rzeczywistości lepszy. – Aliostad

+0

Tak, bzdura odpowiedz ... kasowanie :-) – Simon

0
setInterval(function() { 
     // Do something every 3 seconds 
}, 3000); 
0

Użyj funkcji setInterval.

var doPost = function() { 
    $('post').each(function() { 
    ... 
    }); 
}; 
setInterval(function() { doPost(); }, 3000); 
1

Można użyć setTimeout uruchomić funkcję po X milisekund minęło.

var timeout = setTimeout(function(){ 
    $('post').each(function(){ 
     //do stuff... 
    }); 
}, 3000); 

Albo setInterval uruchomić funkcję co X milisekund.

var interval = setInterval(function(){ 
    $('post').each(function(){ 
     //do stuff... 
    }); 
}, 3000); 

setTimeout i setInterval ID zwrotne, które można wykorzystać, aby usunąć timeout/częstotliwość pomocą clearTimeout lub clearInterval.

Powiązane problemy