web-dev-qa-db-fra.com

fonction jquery setInterval

$(document).ready(function(){

    setInterval(swapImages(),1000);

    function swapImages(){

        var active = $('.active'); 
        var next = ($('.active').next().length > 0) ? $('.active').next() : $('#siteNewsHead img:first');

        active.removeClass('active');
        next.addClass('active');
    }
});

J'ai 13 images contenues dans un div. La première a une classe appelée active, ce qui signifie qu'elle est affichée.

La fonction d'échange d'images sélectionne l'image active, la masque et active l'image suivante.

Cependant, lorsque la page se charge, la fonction ne fonctionne correctement qu'une seule fois, plutôt que de boucler.

Des idées?

13
callum.bennett

En effet, vous exécutez la fonction sans la référencer. Tu devrais faire:

  setInterval(swapImages,1000);
30
Nicola Peluchetti

Ne passez pas le résultat de swapImages à setInterval en l'invoquant. Passez simplement la fonction, comme ceci:

setInterval(swapImages, 1000);
10
FishBasketGordo

// exemple simple utilisant le concept de setInterval

$(document).ready(function(){
var g = $('.jumping');
function blink(){
  g.animate({ 'left':'50px' 
  }).animate({
     'left':'20px'
        },1000)
}
setInterval(blink,1500);
});
3
Rajkumar