我正在尝试调用函数,然后获取返回的变量并将其显示在div中的屏幕上。但是,在我下面的当前格式中,.html()作为postGameStatistics()函数同时执行。 postGameStatistics()是一个在其他一些动作中执行ajax帖子的函数。有没有办法把这个链接起来?
var fbDiv = "#fb-request-wrapper";
var xp = postGameStatistics(fbDiv, "#loading_fb", "p2", null);
$(fbDiv).html("Congrats! you've just earned " + xp + " XPs.");
$(fbDiv).show();
干杯,
迪安
答案 0 :(得分:2)
两个选项。我认为第二个就是你想要的。
1)将jQuery ajax请求的可选“async”属性设置为false。这将使脚本的其余部分等到请求完成后再继续。例如:
$.ajax({
url: http://example.com,
type: 'POST',
async: false,
data: myData,
success: function(data){
//handle a successful request
},
error: function(data){
//handle a failed request
}
});
2)在$ .ajax方法的“success”回调中执行第二行代码。这是处理AJAX请求的标准jQuery方法。请注意,在这种情况下,您不需要将async设置为false:
$.ajax({
url: http://example.com,
type: 'POST',
data: myData,
success: function(data){
$(fbDiv).html("Congrats! you've just earned " + data + " XPs.");
$(fbDiv).show();
},
error: function(data){
//handle a failed request
}
});
答案 1 :(得分:0)
您可以将$(fbDiv).html()
和$(fbDiv).show()
移动到回调函数中,该函数在ajax请求成功完成后调用。
所以你的请求看起来像是:
var postGameStatistics = function(div) {
var $div = $(div);
$.get('get/xp', {some: "parameters"}, function(response) {
var xp = response.xp;
$div.html("Congrats! you've just earned " + xp + " XPs.");
$div.show();
});
};
答案 2 :(得分:0)
使用jQuery你可以使用ajax()函数进行ajax调用。要实现您想要的,请考虑在ajax()函数下使用success()或cemplete()方法。在success()方法中,您可以填充并显示您的DIV元素。
更多内容可以在这里阅读:http://api.jquery.com/jQuery.ajax/
EDIT。
一个小例子
$.ajax({
url: 'http://example.com/something',
action: 'post',
success: function( data ) {
$(fbDiv).html("Congrats! you've just earned " + xp + " XPs.");
$(fbDiv).show();
}
});