我想在jquery ajax调用完全完成后才执行js函数。(成功和错误事件完成后)。即在ajax调用之后将传入的数据放入元素。
如何实现这一点。
答案 0 :(得分:16)
您应该使用$.ajaxComplete();
$(document).ajaxComplete(function() {
alert("compete");
});
这将在您在页面上进行的每次Ajax调用后触发
否则您使用ajax()并设置完整属性
$.ajax({
url: "myurl",
complete: function(){
alert("complete");
}
//set all the other options as usual
答案 1 :(得分:5)
您可以使用任何jQuery AJAX方法的回调来延迟执行另一个函数,直到请求完成为止。
示例:
$.post('/some/url', somedata, function() {
// put the code you want to execute on completion here
});
对于更复杂的场景,请使用实际的ajax方法,该方法为您提供成功,完成,错误和其他事件的挂钩。通常,您只需要成功和错误。
$.ajax( '/some/url', {
data: somedata,
type: 'post',
success: function(result) {
// success code execution here
},
error: function(xhr,status,error) {
// error code here
},
complete: function(xhr,status) {
// completion code here
}
});
答案 2 :(得分:1)
如果您希望针对特定呼叫执行此操作,则可能需要complete
功能。如果你希望这是全局的,对于所有ajax调用,那么Nicola的答案应该是你需要的。
这是Ajax调用的jQuery documentation。