javascript - 函数 onClick() - 购物车未添加 - 出了什么问题?

标签 javascript jquery squarespace

我在 Shopify 上有一个带有“添加到购物车”按钮的产品页面。

点击后,产品就会添加到购物车,页面会重定向到另一个追加销售产品。

将追加销售产品添加到购物车后,它会转到结账页面,但它只显示追加销售产品,而不是用户想要购买的第一个产品。下面的代码有什么问题?

如何使这两种产品都出现在结帐中?

<script>
function redirectToUpsellPageHandler(wrapper) {
  var upsellPageUrl = '/clientproducts/cryogenic-storage';
  var addToCartButton = wrapper.querySelector('.sqs-add-to-cart-button');
  var productVariants = wrapper.querySelector('.product-variants');

  if (addToCartButton) {
    addToCartButton.addEventListener('click', onClick);
  }

  function isVariantInStock() {
    return productVariants.getAttribute('data-variant-in-stock');
  }

  function onClick() {
    if (productVariants && isVariantInStock() || !productVariants) {
      setTimeout(function() {
        document.location.href = upsellPageUrl;
      }, 1000);
    }
  }
}

function redirectToUpsellPage() {
  // Product Page
  var productPage = document.querySelector('.collection-type-products.view-item');
  if (productPage) {
    redirectToUpsellPageHandler(productPage);
  }

  // Product Blocks
  var productBlocks = [].slice.call(document.querySelectorAll('.sqs-block-product'));
  productBlocks.forEach(redirectToUpsellPageHandler);
}

document.addEventListener('DOMContentLoaded', redirectToUpsellPage);
window.addEventListener('mercury:load', redirectToUpsellPage);
</script>

最佳答案

添加一些 console.logs 并确保您正在进入 onClick 函数。如果您不这样做,则使用名为 onClick 的函数可能会出现某种类型的问题,因为这是 jQuery 或 JS 中的保留函数。

关于javascript - 函数 onClick() - 购物车未添加 - 出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54912923/

相关文章:

javascript - ie javascript 删除元素

javascript - ASP.NET MVC 中的日期格式设置

jquery - 在提交表单之前运行动画(并确保其完成)

Git 推送后 Squarespace 开发者模式无法恢复地破坏网站

php - 如果提交按钮被禁用,用户是否可以提交表单? (询问因为 PHP 验证)

javascript - .fill() 相当于对象

javascript - 如何在不使用 jQuery 刷新页面的情况下实现这一点?

jquery - 在提交之前使用 jQuery 从 DOM 中删除选择字段值?

javascript - 我的 jquery 运行时未加载 Squarespace 表单(在 IE 中)

javascript - jQuery 淡入淡出停止错误 : jQuery (".box"). stop().fadeIn();