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

移除侧边栏购物车弹窗后,购物车计数器不递增问题求助

问题原因及修复方案

你的问题出在注释掉了product:added自定义事件的触发代码——原来的Header购物车计数器应该是通过监听这个事件来实现实时更新的,移除后自然无法同步数量。另外你虽然获取了CartCount元素,但没有在商品添加成功后主动更新它的内容。

方案一:恢复自定义事件(推荐,保持原有逻辑一致性)

如果原来的计数器逻辑是监听product:added事件来更新的,只需要取消那段代码的注释即可:

setTimeout(function() {
    document.dispatchEvent(new CustomEvent('product:added', {
        bubbles: true,
        detail: {
            variant: cart,
            quantity: 1
        }
    }));
}, 1200);

这样原有监听该事件的计数器逻辑就能正常触发,实现实时更新。

方案二:直接更新计数器数值

如果不想依赖原有事件,也可以在ajax成功回调里直接修改CartCount的内容:
在success函数里,比如在第一个setTimeout的回调中添加以下代码:

// 直接更新购物车计数
CartCount.textContent = cart.item_count;

完整修改后的success部分示例:

success: function(cart) {
    setTimeout(function() {
       $(".loader_" + id).removeClass("add-success--adding");
        $(".loader_" + id).addClass("add-success--added");
//              cartRecommended(pro_id);
        // 直接更新购物车计数
        CartCount.textContent = cart.item_count;
    }, 500);

    setTimeout(function() {
        $(".loader_" + id).removeClass("add-success--adding").removeClass("add-success--added");
      
    }, 1600);
    setTimeout(function() {
//        $('#backdrop').addClass('backdrop_active');
    }, 2000);
}

原理说明:ajax请求成功后返回的cart对象包含item_count字段,这是购物车的总商品数量,直接把这个值赋值给计数器元素的文本内容即可实现实时更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:02:46