web-dev-qa-db-fra.com

Exécuter une fonction dans un intervalle de temps dans jQuery

Je veux créer une bannière en utilisant jQuery. Lorsque le script chargé de la page affichera un groupe de photos une par une. Par exemple, le contrôleur envoie 10 photos et chaque photo sera affichée dans 30 secondes après 10 minutes, le script exige une autre photo du contrôleur.

La question est: comment créer une fonction qui s'exécute en 30 secondes. J'ai besoin d'exécuter une fonction dans un intervalle de temps sans aucun clic sur un bouton ni rien d'autre.

17
Sesen

La méthode principale est:

 setInterval(function () {
        console.log('it works' + new Date());
    },30000);

Si vous devez effacer l'intervalle à l'avenir:

var myInterval = setInterval(function () {
            console.log('it works' + new Date());
        },30000); 

a l'avenir:

clearInterval(myInterval);
45
Roki

Essayez quelque chose comme ceci:

HTML:

<ul id="ticker">
    <li>Image 1</li>
    <li>Image 2</li>
    <li>Image 3</li>
    <li>Image 4</li>
    <li>Image 5</li>
</ul>​

CSS:

ul{height:20px; overflow:auto}​

JS:

var $ticker = $('ul#ticker');
var speed = 300;
var pause = 3000;

var tick = function () {
    var first = $ticker.find('li').first().animate({
        height: 0
    }, speed).hide('normal', function() {
        $(this).remove();
        $ticker.append('<li>' + first + '</li>');
    }).html();
};

$('ul#ticker').click(tick);
setInterval(tick, pause);

Ici, un simple Demo.

4
yckart

JavaScript fournit une fonction setTimeout :

var timeoutID = window.setTimeout(code, delay);
0
BnW