2012-01-24 15 views

Respuesta

11

Ninguna de las respuestas hasta el momento tiene en cuenta que sólo quiere que suceda durante 15 segundos y luego se detiene ...

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

Esto crea un intervalo (cada 3 segundos) que se ejecuta cualquier código que se pone en la función. Después de 15 segundos, se destruye el intervalo (hay un retraso inicial de 3 segundos, de ahí el tiempo de ejecución general de 18 segundos).

+1

+1, pero es probable que desee aumentar algo el '15000'; de lo contrario, la función probablemente se ejecute solo cuatro veces, y supongo que la intención es que se ejecute cinco veces. – ruakh

+0

Buen punto - debe ser al menos 18000. Respuesta modificada - gracias :) – Archer

+0

Er, estaba pensando más como '15500' - lo suficiente como para dar un buen margen de error. – ruakh

0

También podría usar el método setTimeout, que admite cosas como cancelar el temporizador.

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

+0

No desestime esto, se puede utilizar con una llamada recursiva. Aunque setinterval es más correcto en este caso. Simon: También hay un método de intervalo claro por cierto :) – Johan

+0

+1. 'setTimeout' es realmente mejor. – Aliostad

+0

Sí, mierda respuesta ... borrar :-) – Simon

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

Utilice la función setInterval.

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

Puede utilizar setTimeout para ejecutar una función después de X milisegundos han pasado.

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

O setInterval para ejecutar una función cada X milisegundos.

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

setTimeout y setInterval IDs de retorno, estos pueden ser utilizados para limpiar el tiempo de espera/intervalo usando clearTimeout o clearInterval.

Cuestiones relacionadas