【问题标题】:shopify ajax clear cartshopify ajax 清除购物车
【发布时间】:2013-10-04 18:49:10
【问题描述】:

我不熟悉 AJAX/Javascript,所以我很难做一些简单的事情。

我正在尝试在有人将商品添加到购物车之前使用 Shopify's AJAX API 清除购物车。

我的代码目前如下所示:

    <script>
  function clearcart()
  {
    var my_button=$('input.addToCart');
my_button.on('click',function(){
    $.ajax({
        type: "POST",
        url: '/cart/clear.js',
        data: '',
        success: success,
        dataType: 'json',
        success: function() { 
            return Shopify.clear();

        },
        error: function(XMLHttpRequest, textStatus) {
          /* error code */
        }
    });

    return false;
});
  }
</script>
<input type="submit" name="add" value="Try Now" class="addToCart" onclick="clearcart();" "javascript:window.location='/cart' return false"/>

【问题讨论】:

    标签: jquery shopify


    【解决方案1】:

    尝试将您的代码更新为:

     <script>
       function clearcart() {
        var my_button=$('input.addToCart');
        my_button.on('click',function(){
          $.ajax({
            type: "POST",
            url: '/cart/clear.js',
            data: '',
            dataType: 'json',
            success: function() { 
                Shopify.clear();
            },
            error: function(XMLHttpRequest, textStatus) {
              /* error code */
            }
          });
          return false;
        });
      }
    </script>
    <input type="submit" name="add" value="Try Now" class="addToCart" onclick="clearcart();" "javascript:window.location='/cart' return false"/>
    

    【讨论】:

      【解决方案2】:

      实际上Shopify.clear() 会为您调用 AJAX。所以你真正需要做的就是:

      function clearCart() {
        Shopify.clear();
      }
      

      在您的表单中,您有 onclick="clearCart();"它将为您调用该函数。

      我看到您正在使用 window.location 做一些事情,如果您愿意,您也可以在 clearCart 函数中通过利用可以传递到 Shopify.clear 函数调用的回调来执行此操作:

      function clearCart() {
        Shopify.clear(function(){
          window.location = "/cart";
        });
      }
      

      希望这会有所帮助。

      【讨论】:

      • 这似乎适用于 Firefox,但不适用于 safari 或 chrome?有任何想法吗?是因为这样做它不会等待 ajax 响应吗?
      • 我在 Chrome 中执行命令,所以该功能应该可以工作。或者,您可以访问 jQuery,我相信您可以将事件侦听器附加到您想要触发此功能的 DOM 节点(添加到购物车)
      【解决方案3】:

      使用它清除购物车页面中的所有数据

      $('.addToCart').click(function(){
        $.ajax({
          type: "POST",
          url: '/cart/clear.js',
          data: '',
          dataType: 'json',
          success: function() { 
            location.reload();
          },
          error: function(XMLHttpRequest, textStatus) {
            /* error code */
          }
        });
        return false;
      });
      

      【讨论】:

        猜你喜欢
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 2017-03-03
        • 2019-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多