2012-01-24 16 views

risposta

11

Nessuna delle risposte finora di tenere conto che si vuole solo che accada per 15 secondi e poi fermarsi ...

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

Questo crea un intervallo (ogni 3 secondi) che corre qualsiasi codice si mette nella funzione. Dopo 15 secondi l'intervallo viene distrutto (c'è un ritardo iniziale di 3 secondi, quindi il tempo di esecuzione complessivo di 18 secondi).

+1

+1, ma probabilmente si desidera aumentare un po 'il valore di '15000'; altrimenti la funzione molto probabilmente verrà eseguita solo quattro volte, e suppongo che l'intento sia che venga eseguito cinque volte. – ruakh

+0

Buon punto - dovrebbe essere almeno 18000. Risposta modificata - grazie :) – Archer

+0

Er, stavo pensando più come '15500' - quanto basta per dare un buon margine di errore. – ruakh

0

È anche possibile utilizzare il metodo setTimeout, che supporta operazioni come l'annullamento del timer.

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

+0

Non è stato inserito a valle, può essere utilizzato con una chiamata ricorsiva. Anche se setinterval è più corretto in questo caso. Simon: C'è anche un chiaro metodo dell'intervallo :) – Johan

+0

+1. 'setTimeout' è in realtà migliore. – Aliostad

+0

Sì, risposta di crap ... eliminazione :-) – Simon

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

Utilizzare la funzione setInterval.

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

È possibile utilizzare setTimeout per eseguire una funzione dopo millisecondi X sono passati.

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

Oppure, setInterval per eseguire una funzione di ogni X millisecondi. ID ritorno

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

setTimeout e setInterval, questi possono essere utilizzati per cancellare il timeout/intervallo utilizzando clearTimeout o clearInterval.

Problemi correlati