【发布时间】:2021-09-15 03:33:05
【问题描述】:
单击按钮.button 时,我试图触发几个动作
我首先需要清理每个包含.classToClean 类的<div> 并启动一些ajax 脚本来更新数据库。为此,我选择 $(.classToClean).each(function(index){}); 结构,然后选择 ajax $.ajax({}) 结构。到目前为止,我的代码如下所示。
$(".button").on("click", function () {
///// each loop /////
$( ".classToClean" ).each(function( index ) {
$.ajax({
//... (clean 1)
success:function(response){
$.ajax({
//... (clean 2)
success:function(response){
}
});
}
});
});
///// /each loop /////
});
一旦干净,我想将新语句写入数据库,但这次我只需要 ajax。结果我得到了这样的结果:
$(".button").on("click", function () {
///// each loop /////
$( ".classToClean" ).each(function( index ) {
$.ajax({
//... (clean 1)
success:function(response){
$.ajax({
//... (clean 2)
success:function(response){
}
});
}
});
});
///// /each loop /////
$.ajax({
//... (write 1)
success:function(response){
$.ajax({
//... (write 2)
success:function(response){
}
});
}
});
});
一切正常,但我想在 each() 和 ajax 完成后刷新。通常我只有一个脚本,所以我添加了一个这样的成功函数
success:function(response){
location.href = "...";
},
但是因为我有很多脚本要运行,所以似乎没有好地方放它。例如,如果我将它放在"write 2" 成功函数中,有时似乎.each() 还没有完成,因此在执行某些脚本之前会刷新页面。
因此我的问题是:有没有办法只在.each 和ajax 中执行所有脚本时才刷新?
【问题讨论】:
标签: javascript jquery ajax function each