替换文本信息

时间:2010-12-18 19:04:16

标签: jquery

我想替换我的(#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);

}

但我只能看到“正在加载数据......”的文字。即使有fadeOut(2000),也会完全跳过“发送参数...”。

我甚至尝试了setTimeout(replace_info(“Loading data ...”),4000);但没有运气。

任何人都知道麻烦在哪里? 任何帮助都是非常有用的。

谢谢彼得

1 个答案:

答案 0 :(得分: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);
}