Shopify Prestige主题:点击Quick Add按钮时阻止购物车抽屉弹窗
Prestige主题Quick Add按钮关闭购物车抽屉弹窗解决方案
方法一:通过监听事件阻止抽屉弹出
Prestige主题的Quick Add完成后,会触发购物车更新事件唤起抽屉,我们可以通过自定义脚本拦截这个行为:
进入Shopify后台的在线商店 > 主题 > 操作 > 编辑代码,找到
Assets目录下的theme.js(或theme.min.js),在文件末尾添加以下代码:// 阻止Quick Add后弹出购物车抽屉 document.addEventListener('DOMContentLoaded', function() { // 监听购物车更新事件 document.addEventListener('cart:updated', function(e) { e.preventDefault(); e.stopPropagation(); // 可选:添加自定义提示,告知用户商品已添加 const tip = document.createElement('div'); tip.style.cssText = 'position:fixed;top:30px;right:30px;padding:12px 20px;background:#27ae60;color:#fff;border-radius:4px;z-index:9999;'; tip.textContent = '商品已加入购物车'; document.body.appendChild(tip); setTimeout(() => tip.remove(), 2500); }); });如果上述方法无效,可尝试拦截Quick Add表单的提交动作,在商品添加后强制关闭抽屉:
document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('[data-quick-add-form]').forEach(form => { form.addEventListener('submit', function() { setTimeout(() => { // 关闭抽屉(根据主题实际类名调整,以下为常见类名) const drawer = document.querySelector('.Drawer'); const overlay = document.querySelector('.Overlay'); if (drawer) drawer.classList.remove('Drawer--open'); if (overlay) overlay.classList.remove('Overlay--visible'); }, 100); }); }); });
方法二:修改Quick Add的Ajax回调逻辑
直接修改Quick Add的请求完成后的处理代码,去掉唤起抽屉的动作:
- 在主题代码中找到
product-grid.liquid或quick-add.liquid文件,定位到Ajax请求的成功回调部分,通常类似以下代码:fetch(form.action, { method: 'POST', body: new FormData(form) }).then(res => res.json()).then(data => { // 原代码中可能有 CartDrawer.open() 或类似唤起抽屉的语句 // 删除或注释掉这行代码,替换为自定义提示或空逻辑 console.log('商品已添加'); }); - 将原有的抽屉唤起代码(如
CartDrawer.open())删除,即可阻止弹窗弹出。
注意事项
- 修改前务必备份主题文件,避免操作失误导致网站异常。
- 若使用压缩版JS文件(如
theme.min.js),建议先解压修改后重新压缩替换,或直接在主题的自定义脚本设置中添加代码(部分主题支持此功能)。 - 代码中的类名(如
.Drawer、.Overlay)若与你的主题不符,可通过浏览器F12开发者工具查看实际类名后替换。
内容的提问来源于stack exchange,提问作者user19889863
相关产品推荐
相关产品推荐

