2010-06-22 16 views
4

Y at-il équivalent pour les fonctions setTimeout et clearTimeout à jquery .... Je trouve 1.4.2 cet ancien qui utilise jquery 1.3.2 ..jquery équivalent pour setTimeout 1.4.2 et clearTimeout

var alerttimer = window.setTimeout(function() { 
      $alert.trigger('click'); 
      }, 3000); 
      $alert.animate({height: $alert.css('line-height') || '50px'}, 200) 
      .click(function() { 
       window.clearTimeout(alerttimer); 
       $alert.animate({height: '0'}, 200); 
      }); 

Répondre

3
$(document.body).delay(3000).show(1, function(){ 
    // do something 
}); 

qui utiliserait jQuerys fx en file d'attente pour créer un délai d'expiration. Pour émuler un intervalle de cette manière, utilisez une fonction qui s'appelle elle-même dans la fermeture de rappel.

function repeat(){ 
    // do something 
    $(document.body).delay(5000).show(1, repeat); 
} 

Utilisation $(document.body).stop() pour effacer la file d'attente fx et arrêter l'intervalle.

Cela fonctionne comme un javascript setTimeout intervalle "hack".

(function(){ 
    alert('I popup every 5 seconds! haha!'); 
    setTimeout(arguments.callee, 5000); 
})(); 
+0

Notez que le .delay() peut ne pas se produire exactement toutes les 5 secondes. En fait, il se produira très probablement à un intervalle légèrement plus grand que cela, en raison du temps d'exécution. Le code dans 'repeat()' prend du temps à s'exécuter, puis le délai est défini. Cela fonctionne, mais ce ne sera pas aussi précis que setInterval() –

+0

@Ryan: Vous êtes là. Mais, cependant, pas de temporisation dans 'ecma-/javascript' n'est pas exacte en raison de la' file d'attente de l'interface utilisateur '. Qu'est-ce que 'setTimeout()' par exemple provoque, pour ajouter du code après un certain temps à la 'file d'attente de l'interface utilisateur'. Il ne garantit pas l'exécution immédiate. – jAndy

4

setTimeout et clearTimeout sont des méthodes JavaScript natives donc ils travaillent dans jQuery 1.4.2 aussi – et en tant que tel, il n'y a pas besoin d'équivalents dans jQuery.

+0

La fonction 'delay' de jquery est-elle similaire à' settimeout'? –

+0

@Pandiya, la méthode '.delay()' fonctionne un peu différemment. Oui, c'est un wrapper pour 'setTimeout' mais il est utilisé dans les files d'attente pour retarder l'exécution des fonctions suivantes. Par exemple '$ ('# foo'). SlideUp (300) .delay (800) .fadeIn (400);'. Cela n'aide pas dans votre cas. –