You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除最后一个任务时如何隐藏prikaziizmeni div?

问题修复:删除最后一个任务时正确切换显示状态

问题根源

你遇到的计数偏差,大概率是计数时机不对(删除DOM元素前就计算了数量),或者选择器包含了隐藏/已标记删除的元素,导致剩余任务数判断错误,无法触发#prikaziizmeni的隐藏逻辑。

解决方案

1. 调整操作顺序:先删元素,再计数

确保在删除任务DOM节点之后,再统计剩余任务数量,避免用删除前的旧数据判断。

2. 精准选择可见任务(可选)

如果你的任务元素存在隐藏状态(比如用hide()而非remove()),需要用:visible筛选仅可见的任务,避免统计无效元素。

修正后的obrisiZadatak函数示例

function obrisiZadatak() {
    // 1. 先移除当前要删除的任务DOM元素
    // 假设通过点击事件触发,用closest找到对应的.zadatakid父元素
    $(this).closest(".zadatakid").remove();
    
    // 2. 统计剩余任务数(若有隐藏元素,改用$(".zadatakid:visible").length)
    const preostaliZadaci = $(".zadatakid").length;
    
    // 3. 执行显示/隐藏逻辑
    if (preostaliZadaci === 0) {
        // 隐藏任务选择区域
        $("#prikaziizmeni").hide();
        // 显示无任务提示
        $("#bezZadatakaPoruka").show();
        // 隐藏删除成功提示(避免同时显示)
        $("#obrisanZadatakPoruka").hide();
    } else {
        // 显示删除成功提示
        $("#obrisanZadatakPoruka").show();
        // 可选:3秒后自动隐藏提示
        setTimeout(() => $("#obrisanZadatakPoruka").hide(), 3000);
    }
}

额外注意点

  • 如果删除操作是异步请求后端(比如AJAX),必须把DOM操作和计数逻辑放在请求的success回调里,否则会因为异步执行顺序问题导致计数错误。
  • 检查你的任务元素是否真的被remove()移除,而不是仅仅用hide()隐藏——如果是后者,.length会包含隐藏元素,必须用:visible筛选。

内容的提问来源于stack exchange,提问作者user21626341

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:22:39