Shopify购物车页面-使用jQuery更改数量输入值

Shopify购物车页面-使用jQuery更改数量输入值,shopify,liquid,Shopify,Liquid,我在购物车布局中有+和-按钮,它们使用jQuery更改数量输入的值 它在页面和源代码中都能完美地工作(数量值更改),但在页面刷新后就不起作用,也不会反映在签出页面上 手动更改数量(使用内置输入箭头或通过在字段中键入新数量)正常工作 $(".qty-button").on("click", function() { var $button = $(this); var oldValue = $button.parent().find

我在购物车布局中有+和-按钮,它们使用jQuery更改数量输入的值

它在页面和源代码中都能完美地工作(数量值更改),但在页面刷新后就不起作用,也不会反映在签出页面上

手动更改数量(使用内置输入箭头或通过在字段中键入新数量)正常工作

    $(".qty-button").on("click", function() {

    var $button = $(this);
    var oldValue = $button.parent().find("input").val();
    var newVal;

    if ($button.text() === "+") {
        newVal = parseFloat(oldValue) + 1;
    } else {
        if (oldValue > 0) {
            newVal = parseFloat(oldValue) - 1;
        } else {
            newVal = 0;
        }
    }

    $button.parent().find("input").attr('value', newVal).trigger('change');

});
它更改页面源中的值,并反映在购物车页面上,但在页面刷新或签出时返回原始值时,在功能方面不做任何操作


有什么想法吗?

不知道我需要启动Shopify购物车API

如果将来有人需要,可通过以下方式修复:

  <div class="cart-item-block qty-selector">
      <div class="qty-button increase" onclick="Shopify.addItem({{ item.variant.id }}, this.parentNode.querySelector('input[type=number]').value)">+</div>
      <input id="updates_{{ item.key }}" class="cart-qty-input" type="number"
             name="updates[]" value="{{ item.quantity }}" min="1" pattern="[0-9]*"
             >
      <div class="qty-button decrease" onclick="Shopify.removeItem({{ item.variant.id }}, this.parentNode.querySelector('input[type=number]').value)">-</div>
  </div>

<script>
    Shopify.addItem = async function(id,quantity){
        await $.ajax({
            method:'POST',
            url:'/cart/change.js',
            data:{ id:id, quantity:(++quantity) },
            dataType: 'json'
        })
    };
    
    Shopify.removeItem = async function(id,quantity){
        await $.ajax({
            method:'POST',
            url:'/cart/change.js',
            data:{ id:id, quantity:(--quantity) },
            dataType: 'json'
        })
    };
</script>

+
-
Shopify.addItem=异步函数(id、数量){
wait.ajax({
方法:'POST',
url:“/cart/change.js”,
数据:{id:id,数量:(++quantity)},
数据类型:“json”
})
};
Shopify.removietem=异步函数(id、数量){
wait.ajax({
方法:'POST',
url:“/cart/change.js”,
数据:{id:id,数量:(-quantity)},
数据类型:“json”
})
};

是否有AJAX方法在购物车页面或手动更新购物车按钮上更新购物车?您是否可以分享“在页面和源代码中都能正常工作(数量值更改),但在页面刷新后无法工作,并且无法反映在签出页面上”的代码?@OnkarSingh我在购物车页面上没有任何AJAX。@KarimTarek我发布的代码正在工作,但正如问题中所述,它只在视觉上工作,但由于某种原因它并没有真正更新值。另外,我还将代码更新为我正在使用的完整代码段。