2010-12-10 25 views
8

Estoy usando herramientas de Jquery, efecto de superposición y quiero cerrarlo, si la respuesta JSON es correcta, pero quiero hacerlo con un retraso.Cómo retrasar .trigger ('clic') con superposición de herramientas de jquery

$.ajax({ 
       //bla bla 
       success: function(data){ 
         var obj = jQuery.parseJSON(data); 
         if (obj.status=='OK') 
         { 
          $('#status').text('bla bla'); 
          jQuery('.close').trigger('click'); 
         } 
         else 
         { 
          $('#status').text('bla bla');      
         } 
        } 
      }); 

así que esto - jQuery ('. Close'). Trigger ('click'); debe ejecutarse después de un tiempo. ¿Algunas ideas?

Respuesta

23

setTimeout() es una función nativa de JavaScript diseñada para este fin.

setTimeout(function() { 
    jQuery('.close').trigger('click'); 
}, 1000); 

El último número es el tiempo de retardo en milisegundos.

+0

Gracias) funciona) –

+0

I -would- estar pensando, el mismo (azúcar sintáctico ..) sería posible por $ ('# Nivo'). Retardo (5000) .load ( –

+0

@Fronker , no funcionaría con el delay(). load (...), porque a .load() no le importa la función .delay(), al igual que a .show(), por ejemplo. Solo funciona eso use la cola de jQuery podría usar efectos de la demora(). – userfuser

6

uso setTimeout:

retraso aquí es de 1 segundo (1000 ms)

$.ajax({ 
       //bla bla 
       success: function(data){ 
         var obj = jQuery.parseJSON(data); 
         if (obj.status =='OK') 
        { 
         $('#status').text('bla bla'); 
         setTimeout(function(){jQuery('.close').trigger('click');},1000); 

        } 
        else 
        { 
         $('#status').text('bla bla');      
        } 
       } 
     }); 
-3

no evaluados.

jQuery('.close').delay(500).trigger('click'); 
+2

'.delay()' solo funciona con efectos en jQuery que usan la cola de efectos. '.trigger()' no es uno de esos. – TelegramSam

Cuestiones relacionadas