Javascript Jquery显示消息,然后是Ajax,然后是隐藏消息
我举个例子Javascript Jquery显示消息,然后是Ajax,然后是隐藏消息,javascript,jquery,ajax,Javascript,Jquery,Ajax,我举个例子 document.ready(function() { $("#Show").bind("click", function() { var F = Function2(); if (F) { // Do Other Stuff. } } }); function Function2() { $("#Message").Show(); $.ajax({
document.ready(function() {
$("#Show").bind("click", function()
{
var F = Function2();
if (F)
{
// Do Other Stuff.
}
}
});
function Function2()
{
$("#Message").Show();
$.ajax({
type: "POST",
url: [MyURL]
async: false;
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(PostData),
dataType: "json",
success: function (returnVal) {
$("#Message").Hide();
return true;
},
error: function (xhr, ajaxOptions, thrownError) {
return false;
}
});
}
</script>
<div id="Message" style="display:none;">
<!-- Loading Image In here -->
</div>
<a href="#" id="Show" onclick="return:false;">Show then Hide</false>
</code>
document.ready(函数(){
$(“#显示”).bind(“单击”,函数()
{
var F=Function2();
如果(F)
{
//做其他事情。
}
}
});
函数Function2()
{
$(“#消息”).Show();
$.ajax({
类型:“POST”,
url:[我的url]
异步:false;
contentType:'application/json;charset=utf-8',
数据:JSON.stringify(PostData),
数据类型:“json”,
成功:函数(returnVal){
$(“#消息”).Hide();
返回true;
},
错误:函数(xhr、ajaxOptions、thrownError){
返回false;
}
});
}
先露后藏
现在我想让这个messagebox显示出来,但是由于某种原因,AJAX在AJAX请求完成之前不会显示它,现在已经太晚了。我已经将async设置为false,这也没有帮助。我认为这个问题的根源是语法错误。JavaScript区分大小写,因此正确的语法会更低大小写
show()
和hide()
如果在修复语法错误后仍然存在问题,请尝试使用ajaxStart
事件显示消息,并在成功时隐藏消息
//use the ajaxstart event to display the message
$('#message').ajaxStart(function() {
$(this).show("slow");
});
$.ajax({
type: "POST",
url: [MyURL]
async: false;
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(PostData),
dataType: "json",
success: function (returnVal) {
$("#Message").hide("slow"); //hide message on success
return true;
},
error: function (xhr, ajaxOptions, thrownError) {
return false;
}
});
推迟表演或隐藏
这里有一个JSFIDLE:在得到true或false后,尝试在click事件中隐藏消息div 删除async:false,我认为这与解决这个问题无关。AJAX调用的目的是进行异步调用 此外,还有一个错误,它不是$(“#Message”).Show()它的$(“#Message”).Show()和hide()都是小写的
尝试更改这些,我希望它能起作用。问题是消息没有显示,它只运行AJAX代码,然后在AJAX完成时显示消息。我需要图像显示,然后运行AJAX,然后隐藏图像。
$("#message").delay(3000).hide("slow");