2 votes

Comment puis-je définir un délai d'attente pour ce code jQuery ?

Voici ce que j'ai jusqu'à présent. Je veux définir un délai d'attente pour la fonction spid() .

<script type="text/javascript">

$(document).ready(function() {  
    $("#spid").animate({top: '-110px' }, 600, 'easeOutBounce',
    function spid() {
       $(this).animate({top:"-=20px"},1000).animate({top:"+=20px"},1000);
       setTimeout("spid()",2000);
    });
});

0voto

BBonifield Points 3106

Il suffit de passer dans une fonction.

setTimeout( spid,2000 );

Ou vous pouvez aussi simplement utiliser setInterval .

0voto

$(function() {
    $("#spid").animate({top: '190px' }, 600,'linear' ,function() {
        (function spid() { 
            console.log('Test'); 
            $(this).animate({top:"+=20px"},1000).animate({top:"+=20px"},1000);
            setTimeout(spid,2000);
        })();   
    });
});

Il y a un problème avec this dans le code ci-dessus, l'extrait de code suivant fonctionne bien

Modifier :

$(function() {
  $("#spid").animate({top: '110px' }, 600,'linear' ,function() {
    var cache = $(this);
    (function spid() {
      cache.animate({top:"+=20px"},1000).animate({top:"-=20px"},1000);
      setTimeout(spid,2000);
    })();  
  });
});

Veuillez tester le code http://jsbin.com/elaxa3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X