每次我添加新产品时,购物车都会以模式形式打开。我确实需要、想要并且喜欢购物车的模态方法,我只是想在每次添加产品时禁止它打开。
代码必须位于此处:http://cdn.shopify.com/s/files/1/0656/8697/t/7/assets/ajaxify.js?8066 .
我尝试从此方法中删除 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;
}
};
这确实会阻止添加产品后打开购物车模式,但如果我单击购物车按钮,也会阻止我打开购物车。
接下来我可以尝试什么?
最佳答案
我从来没有真正想到过这是需要的功能,但我完全理解。请按照以下步骤操作,让模态购物车按您希望的方式工作:
注意:与您的版本相比,我的行号可能有所偏差,因为我正在查看将合并到 Timber master 的最新版本。很快。
在 Private 函数变量声明下的
cartUpdateCallback
后面添加cartToggleCallback
。这是第 260 行左右。在
showModal
中,将Shopify.getCart(cartUpdateCallback);
更改为Shopify.getCart(cartToggleCallback);
这大约是行475.制作
cartUpdateCallback
的完整副本,并将新函数命名为cartToggleCallback
。这是第 689 行附近。注释掉
cartUpdateCallback
中case 'modal
中的buildCart(cart);
上述步骤将为添加产品和切换打开购物车时创建单独的回调。如果您有任何问题,请告诉我!
编辑:要解决下面评论中的问题,请将 showModal
函数替换为以下内容:
showModal = function (toggle) {
$body.addClass('ajaxcart--is-visible');
Shopify.getCart(cartUpdateCallback);
};
关于javascript - 添加产品后如何防止购物车模式(ajax)打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412955/