回调函数删除两个项而不是单个项

时间:2018-06-17 06:55:34

标签: javascript

这里有什么问题:

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

任何帮助?

1 个答案:

答案 0 :(得分:1)

Ajax具有异步性质。在ajax请求之后,$ .post之前的id = $('。nameact')可能与$('。nameact')不同。最好在ID处随意引用nameact。

<img src="https://picsum.photos/200/300/" />
<img class="people" src="https://picsum.photos/200/300/" />
<img attr="some-attr" src="https://picsum.photos/200/300/" />
<img src="https://picsum.photos/200/300/?blur" />

}