gpt4 book ai didi

javascript - 在另一个 ajax 函数结束后执行操作

转载 作者:行者123 更新时间:2023-11-28 18:14:59 24 4
gpt4 key购买 nike

我正在寻找解决方案:我有一个函数可以更新应用程序中表格的内容。

function prev_update(cli_id){
$("#list").empty();
$("#list").append("<tr><td colspan=11><img src='images/loading.gif' alt=loading title=loading /></td></tr>");
$.ajax({
type : 'POST',
url : 'json/get.php?t=2&id='+cli_id,
dataType : 'json',
encode : true
})
.done(function(data) {
$("#list").empty();
if ((data)["prev_list"]) {
$.each((data)["prev_list"], function( i, val ) {
$( "#list" ).append(val);
});
$("#edit").hide("slow");
} else {
$("#list").append("<tr><td colspan=11>&nbsp;</td></tr>");
}
});
};

在另一个函数中,我正在更新表的一行,当我完成编辑表的一行的内容时,我启动一个类似的函数,但在 .done 行中,我调用 prev_update 函数,并在完成后我必须在更新的表格内容中按下按钮,以查看修改...代码如下:

$("#prev_mod").on("click",(function( event ) {
$('#loading_img').css('display','inline');
header_print();
$.ajax({
type : 'POST',
url : 'json/post.php?mod='+$('#prev_id').val(),
data : $("#form_sog").serialize(),
dataType : 'json',
encode : true
})
.done(function(data) {
if ((data)["success"]===false) {
$('#form_edit').hide('slow');
prev_update();
$('#edit_'+$('#prev_id').val()).click();
});
});
}));

我必须等待 prev_update() 函数结束,然后单击按钮,因为该按钮位于正在更新的表中。我也尝试使用延迟对象,但它不起作用(也许是因为我的错误)。我无法编辑函数 prev_update,因为它已被其他函数使用。

最佳答案

您可以使用 .then 代替 .done 来组织代码。这是因为 .then 可以链接

未经测试,但可能是这样的

function prev_update(cli_id){
$("#list").empty();
$("#list").append("<tr><td colspan=11><img src='images/loading.gif' alt=loading title=loading /></td></tr>");
$.ajax({
type : 'POST',
url : 'json/get.php?t=2&id='+cli_id,
dataType : 'json',
encode : true
})
.then(function(data) {
$("#list").empty();
// rest of code
}).then(function(data) {
if ((data)["success"]===false) {
// rest of code
};
});

关于javascript - 在另一个 ajax 函数结束后执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40882184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com