【发布时间】:2011-11-25 16:07:49
【问题描述】:
我只想在 jquery ajax 调用完全完成后执行 js 函数。(在成功和错误事件完成后)。即在ajax调用之后将传入的数据放入一个元素。
如何实现这一点。
【问题讨论】:
-
你有没有尝试过?
标签: javascript asp.net jquery
我只想在 jquery ajax 调用完全完成后执行 js 函数。(在成功和错误事件完成后)。即在ajax调用之后将传入的数据放入一个元素。
如何实现这一点。
【问题讨论】:
标签: javascript asp.net jquery
你应该使用$.ajaxComplete();
$(document).ajaxComplete(function() {
alert("compete");
});
这将在您在页面上进行的每次 Ajax 调用后触发
否则你使用ajax() 并设置完整的属性
$.ajax({
url: "myurl",
complete: function(){
alert("complete");
}
//set all the other options as usual
【讨论】:
您可以使用任何 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
}
});
【讨论】:
如果您想为特定呼叫执行此操作,那么complete 函数可能就是您所需要的。如果您希望它是全局的,对于所有 ajax 调用,那么 Nicola 的答案应该是您所需要的。
这是用于 Ajax 调用的 jQuery documentation。
【讨论】: