2010-12-10 11 views
8

Używam narzędzi Jquery, efekt nakładki i chcę go zamknąć, jeśli odpowiedź JSON jest OK, ale chcę to zrobić z opóźnieniem.Jak opóźnić .trigger ("kliknięcie") z nakładką z narzędzi 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');      
         } 
        } 
      }); 

tak to - jQuery (". Close"). Trigger ("kliknięcie"); musi zostać wykonany po pewnym czasie. Jakieś pomysły?

Odpowiedz

23

setTimeout() to natywna funkcja JavaScript zaprojektowana do tego celu.

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

Ostatnia liczba to czas opóźnienia w milisekundach.

+0

thanx) to działa) –

+0

I -would- myśleć, tę samą (cukier syntaktyczny ..) byłoby możliwe poprzez $ ('# Nivo'). Opóźnienie (5000) .load ( –

+0

@Fronker , nie działałoby z opóźnieniem(). load (...), ponieważ .load() nie dba o funkcję .delay(), taką samą jak .show(), na przykład. używać kolejki jQuery byłoby w stanie użyć efektów opóźnienia(). – userfuser

6

użycie setTimeout:

opóźnienie o 1 sekundę (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

nie testowano.

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

'.delay()' działa tylko z efektami w jQuery, które używają kolejki efektów. '.trigger()' nie jest jednym z nich. – TelegramSam

Powiązane problemy