jQuery Timeout

m.pittini

Utente Attivo
26 Feb 2009
232
6
0
Ciao a tutti,
Esiste una funzione di jQuery per "rallentare" un effetto?
Mi spiego meglio: vorrei creare un animazione al click su un elemento della pagina, ma vorrei che questa non cominciasse subito ma dopo X secondi. In sostanza mi chiedevo se esiste una specie di funzione "ritarda()" ?
Sono obbligato ad usare setTimeOut() di Javascript? Se "sì" come?
 
jQuery NON ha (nativamente) una funzione o un metodo del genere.
Però possiamo rimediare creandoci noi la nostra funzione ad hoc. Dimmi se funziona bene:

Codice:
jQuery.fn.aspetta = function(time){
	var i = $(this);
	i.queue(function(){
		setTimeout(function(){
			i.dequeue();
		}, time);
	});
};

Da usare così:

Codice:
$('#elemento').fadeIn().aspetta(2000).fadeOut('slow');

Il parametro di aspetta è la durata del "ritardo" espressa in millisecondi.

Nel tuo caso puoi fare una cosa del genere:

Codice:
$('#elemento').click(function(){
  $(this).aspetta(2000).fadeIn('slow');
});
Ciao
 

Discussioni simili