javascript - 添加产品后如何防止购物车模式(ajax)打开?

标签 javascript jquery html ajax shopify

每次我添加新产品时,购物车都会以模式形式打开。我确实需要、想要并且喜欢购物车的模态方法,我只是想在每次添加产品时禁止它打开。

代码必须位于此处: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 的最新版本。很快。

  1. 在 Private 函数变量声明下的 cartUpdateCallback 后面添加 cartToggleCallback。这是第 260 行左右。

  2. showModal 中,将 Shopify.getCart(cartUpdateCallback); 更改为 Shopify.getCart(cartToggleCallback); 这大约是行475.

  3. 制作 cartUpdateCallback 的完整副本,并将新函数命名为 cartToggleCallback。这是第 689 行附近。

  4. 注释掉 cartUpdateCallbackcase 'modal 中的 buildCart(cart);

上述步骤将为添加产品和切换打开购物车时创建单独的回调。如果您有任何问题,请告诉我!

编辑:要解决下面评论中的问题,请将 showModal 函数替换为以下内容:

showModal = function (toggle) {
  $body.addClass('ajaxcart--is-visible');
  Shopify.getCart(cartUpdateCallback);
};

关于javascript - 添加产品后如何防止购物车模式(ajax)打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412955/

相关文章:

javascript - 如何通过 Ajax 和 PHP 使用数据切换

javascript - 输入字段只允许数字和连字符并且在特定格式内

javascript - 如何解决 IE 中使用 jquery url 的 HTML1402 问题?

Javascript .children 问题/工具提示

html - 试图让表单的输出显示在与 <p> 元素 html 相同的行上

javascript - 检测上一页对象的状态

javascript - 无法固定侧边栏

javascript - js promise 未正确关闭

jquery - 使 jQuery 的 .prev().prev().prev().find ("selector") 调用更容易

html - 为什么我的 <pre> 和 <code> 标签读取标记而不是生成代码片段?