我有一个主要使用JQuery Mobile的移动应用程序。我有一个使用POST的ajax函数,当我点击click事件时,我似乎无法获得任何效果。我试着设置在ajax后显示加载div
$('#cover').show();
在函数的第一件事,然后我不喜欢的document.getElementById(“用户”)等一些基本的东西设置一些变量,并检查输入,但只要AJAX功能它不会显示JQ Mobile的div甚至是微调。除非我调试并逐步完成代码,否则微调器和div显示正常。我尝试了setTimeout并将它放入ajax调用的beforeSend区域。一切正常,否则。看起来GET的效果好一些,我不确定这是否与它有关。
$.ajax({
cache: false,
type: "POST",
async: false,
url: urlString,
data: jsonstring,
contentType: "application/json",
dataType: "json",
success: function (data) {
JSONobj = JSON.parse(data);
},
beforeSend: function(xhr){
//console.log('BeforeSend');
},
complete: function (xhr) {
//console.log('Complete');
},
error: function (xhr, status, error) {
console.log(error);
}
});
您在指定'async:false'将其变成同步呼叫。你应该让你的“加载”div完全出现在进行非Ajax调用之前。哦,这个页面在通话过程中可能会冻结,主要是因为它被冻结。 – TheZ 2012-07-11 19:55:55
并且当你有$(“#id”)时不要使用document.getElementById – mplungjan 2012-07-11 19:58:57
我之前想过async:true,我会再试一次。我想我必须在那里加载所有的对象属性,而不是在一个单独的函数中。 – Jason 2012-07-11 20:01:45