2010-12-18 8 views
1

내 (#loader) div의 텍스트 정보를 바꾸고 싶습니다. 나는 두 개의 함수 show_info()와 replace_info()를 사용하고있다.텍스트 정보 바꾸기

$('#measure_submit').click(function(){ 
     show_info("Sending params ..."); 
     get_data(); 
    }); 

function get_data(){ 
    $.ajax({ 
      url: '/controller/view', 
      data : { ... }, 
      type: 'POST', 
      typedata: 'text', 

      success: function(data){ 
       hide_info(); 
      }, 
      beforeSend : function(data) { 
       replace_info("Loading data ..."); 
      } 
     }); 

function show_info(string){ 
     $('#loader').text(string); 
     $('#info_box').fadeIn(2000); 
    } 

function replace_info(string){ 
    $('#loader').fadeOut(2000); 
    $('#loader').text(string); 
    $('#loader').fadeIn(2000); 

} 

하지만 '데이터로드 중 ...'텍스트 만 볼 수 있습니다. "Sending params ..."는 fadeOut (2000)이 있더라도 완전히 건너 뜁니다.

나는 setTimeout (replace_info ("Loading data ..."), 4000)도 시도하고 있었다. 그러나 운이 없다.

어디에서 문제가 발생했는지 아는 사람이 있습니까? 도움이됩니다.

감사 피터

답변

1

.text()는 애니메이션과 같은 대기 기능이 없기 때문에 당신 대신 당신이 그것을 대기, 또는 다음과 같이 .fadeOut() 완료와 함께 전화 할게,이를보고있다 :

function replace_info(string){ 
    $('#loader').fadeOut(2000, function() { $(this).text(string); }).fadeIn(2000); 
} 

.queue() 버전은 다음과 같을 것이다 :

function replace_info(string){ 
    $('#loader').fadeOut(2000) 
       .queue(function(n) { $(this).text(string); n(); }) 
       .fadeIn(2000); 
} 
+0

감사 닉, 이것은 내가 찾고 있었던 것입니다. 신부님. – praethorian