2010-11-22 76 views
0

我有以下代碼:回調jQuery的功能後

$('#country-list').change(function() { 
    country = $('#country-list').val(); 

    $('td').fadeOut("slow", function() { 
     $.post("/gsm/findtariff/country:"+country+"/", 
     function(data){ 
      $('#incoming').html(data.incoming); 
      $('#national').html(data.national); 
      $('#callsToUk').html(data.toUk); 
      $('#international').html(data.otherInternational); 
      $('#sms').html(data.sms); 
     }, "json"); 
     $('td').fadeIn(); 
    }); 
}); 

因此,基本上,當一個國家從我的下拉選擇下拉框(#國家列表)應該淡出所有的TDS在我資費表,使用返回的發佈數據更改它們的值,然後再次將它們淡入。然而,用我現在的代碼,td在它們的值被改變之前已經退步了。我怎樣才能讓fadeIn()函數在所有數據都被設置後才執行?

感謝

回答

3

你應該有$('td').fadeIn();回調函數

$('td').fadeOut("slow", function() { 
     $.post("/gsm/findtariff/country:"+country+"/", 
     function(data){ 
      $('#incoming').html(data.incoming); 
      $('#national').html(data.national); 
      $('#callsToUk').html(data.toUk); 
      $('#international').html(data.otherInternational); 
      $('#sms').html(data.sms); 
      $('td').fadeIn(); 
     }, "json"); 
    }); 
+0

O耶對不起,我應該提到我試過這樣做,但它沒有影響td仍然在設置值之前消失。嘗試$('td')。fadeIn(「slow」); – geoffs3310 2010-11-22 09:35:20

+0

。或者你可以使用setTimeout(「$('td')。fadeIn('slow');」,2000); // 2秒後 – 2010-11-22 09:43:30

0

移動電話fadeIn向上一行。