我执行ajax函数需要3秒+所以在这段时间我希望链接(下面的代码,图片中的1)的文本更改为“请稍候.. “。我尝试了下面的JavaScript代码,但是发生了什么是文本没有改变,函数正常执行。如果有人可以指出我的错误,请。
HTML:
<a id="emailGarageList" href="javascript:EmailGarageList(347)">Email Garage List...</a>
屏幕截图:
Javascript:
function EmailGarageList(fId) {
$('#emailGarageList').text('Please wait...');
$.ajax({
type: "POST",
url: "Default.aspx/EmailGarageList",
data: "{'fId':" + fId + ",'userId':" + userId + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("Garage List Emailed!");
},
error: function () {
alert("Error :(");
}
});
$('#emailGarageList').text('Email Garage List...');
};
答案 0 :(得分:4)
将$('#emailGarageList').text('Email Garage List...');
放入您的成功函数中。否则它会改变,然后再改变回来。
答案 1 :(得分:3)
在$ .ajax回调函数中移动$('#emailGarageList').text('Email Garage List...');
。 $ .ajax是一个异步调用,下面的文本会在完成ajax调用之前立即更新。
function EmailGarageList(fId) {
$('#emailGarageList').text('Please wait...');
$.ajax({
type: "POST",
url: "Default.aspx/EmailGarageList",
data: "{'fId':" + fId + ",'userId':" + userId + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert("Garage List Emailed!");
$('#emailGarageList').text('Email Garage List...');
},
error: function () {
alert("Error :(");
}
});
};
答案 2 :(得分:0)
我的猜测是jQuery Mobile(我假设您正在使用)正在修改DOM,因此您的选择器无法按您认为的那样找到$('#emailGarageList')。
答案 3 :(得分:0)
我认为您正在寻找beforeSend callback:
$.ajax({
// other stuff ...
beforeSend: function () {
$('#emailGarageList').text('Please wait...');
}
});