gpt4 book ai didi

javascript - 回调函数删除两项而不是一项

转载 作者:行者123 更新时间:2023-11-29 23:20:25 25 4
gpt4 key购买 nike

这里有什么问题:

function deluser() {
var id = $('.nameact').attr('data-id');
$.post('users-pro-del.php', {id}, function(data) {
$('.nameact').remove();
$('.namesingle').eq(0).addClass('nameact');
});
}

users-pro-del.php - 从数据库中删除用户。

所以我想从屏幕上删除相应的项目
$('.nameact').remove();

并将 active 状态赋予另一个(第一个)项目:$('.namesingle').eq(0).addClass('nameact');

有时它工作正常。

但更常见的是 - $('.namesingle').eq(0) 也被删除了!

正如我在控制台中看到的那样 - 每个时刻只有一个 .nameact

有什么帮助吗?

最佳答案

Ajax 具有异步特性。 $.post 之前的 id = $('.nameact') 可能与 ajax 请求之后的 $('.nameact') 不同。最好到处通过 Id 引用 nameact。

function deluser() {
var id = $('.nameact').attr('data-id');
console.log('id to delete: ' + id);
$.post('users-pro-del.php', {id}, function(data) {
$('.nameact[data-id="' + id + '"]').remove(); // to be sure we delete the same object in php and JS
console.log('deleted id: ' + id);
$('.namesingle').eq(0).addClass('nameact');
});

关于javascript - 回调函数删除两项而不是一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50894395/

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