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已更新,但当我打开购物车模式时,第二个产品不在列表中。购物车模式似乎在手动打开和关闭后停止更新添加的产品。请查看:。我如何解决此问题?已更新答案以包含对此的修复。