作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里有什么问题:
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/
我是一名优秀的程序员,十分优秀!