我想替换我的(#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);但没有运气。
任何人都知道麻烦在哪里? 任何帮助都是非常有用的。
谢谢彼得
答案 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);
}