2010-12-10 39 views
8

Tôi đang sử dụng công cụ Jquery, hiệu ứng lớp phủ và muốn đóng nó, nếu phản hồi JSON là OK, nhưng tôi muốn làm điều đó với một sự chậm trễ.Làm thế nào để trì hoãn .trigger ('click') với lớp phủ từ công cụ 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');      
         } 
        } 
      }); 

vì vậy điều này - jQuery ('. Close'). Trigger ('click'); phải được thực hiện sau một thời gian. Bất kỳ ý tưởng?

Trả lời

23

setTimeout() là một hàm JavaScript gốc được thiết kế cho mục đích này.

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

Số cuối cùng có thời gian trễ bằng mili giây.

+0

thanx) nó hoạt động) –

+0

tôi -would- thể nghĩ, rất giống nhau (đường cú pháp ..) sẽ có thể bằng $ ('# NIVO'). Delay (5000) .load ( –

+0

@Fronker , nó sẽ không làm việc với delay(). load (...), vì .load() không quan tâm đến hàm .delay(), giống như .show(), ví dụ: Chỉ các hàm sử dụng hàng đợi jQuery sẽ có thể sử dụng các hiệu ứng của độ trễ() – userfuser

6

sử dụng setTimeout:

chậm trễ ở đây là 1 giây (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

Không thử nghiệm.

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

'.delay()' chỉ hoạt động với các hiệu ứng trong jQuery sử dụng hàng đợi hiệu ứng '.trigger()' không phải là một trong số đó. – TelegramSam

Các vấn đề liên quan