Javascript 如何防止在添加产品后打开购物车模式(ajax)?
每次我添加一个新产品时,购物车就会作为一个模式打开。我确实需要,想要,就像购物车的模态方法一样,我只想在每次添加产品时禁用它 代码必须位于此处的某个位置: 我已尝试从此方法中删除Javascript 如何防止在添加产品后打开购物车模式(ajax)?,javascript,jquery,html,ajax,shopify,Javascript,Jquery,Html,Ajax,Shopify,每次我添加一个新产品时,购物车就会作为一个模式打开。我确实需要,想要,就像购物车的模态方法一样,我只想在每次添加产品时禁用它 代码必须位于此处的某个位置: 我已尝试从此方法中删除buildCart(cart)(ajaxify.js中的第711行): cartUpdateCallback = function (cart) { // Update quantity and price updateCountPrice(cart); switch (settings.met
buildCart(cart)
(ajaxify.js中的第711行):
cartUpdateCallback = function (cart) {
// Update quantity and price
updateCountPrice(cart);
switch (settings.method) {
case 'flip':
$('.flip-cart span').html(cart.item_count);
break;
case 'modal':
buildCart(cart); // <<<
break;
case 'drawer':
buildCart(cart);
if ( !$drawerContainer.hasClass('is-visible') ) {
showDrawer();
} else {
scrollTop();
}
break;
}
};
cartUpdateCallback=函数(购物车){
//更新数量和价格
更新计算价格(购物车);
开关(设置.方法){
案例“翻转”:
$('.flip cart span').html(cart.item_count);
打破
“情态”一案:
buildCart(cart);//我从来没有想过想要的功能,但我完全理解。按照以下步骤让模式购物车按您的意愿工作:
注意:与您的版本相比,我的行号可能不正确,因为我正在查看即将合并到的最新版本
在私有函数变量声明下的cartUpdateCallback
之后添加cartToggleCallback
。大约在第260行
在showModal
中,将Shopify.getCart(cartUpdateCallback);
更改为Shopify.getCart(cartToggleCallback);
这大约是第475行
制作一份完整的cartUpdateCallback
副本,并将新函数命名为cartToggleCallback
。大约在第689行
注释掉buildCart(cart);
来自case”模式的cartUpdateCallback
上面的步骤将为添加产品和打开购物车创建单独的回调。如果您有任何问题,请告诉我
编辑:要解决下面评论中的问题,请将showmodel
功能替换为以下内容:
showModal = function (toggle) {
$body.addClass('ajaxcart--is-visible');
Shopify.getCart(cartUpdateCallback);
};
有一个新的小问题:当购物车是空的,并且我应用了一个新产品时,购物车计数和购物车得到更新(因此当我打开购物车模式时,我在列表中看到添加的产品)。但是当我添加第二个产品时,购物车计数(右上角)get已更新,但当我打开购物车模式时,第二个产品不在列表中。购物车模式似乎在手动打开和关闭后停止更新添加的产品。请查看:。我如何解决此问题?已更新答案以包含对此的修复。