我已经在购物车页面上找到了如何通过AJAX更改商品数量的方法,并且还找到了如何通过AJAX更新购物车总数的方法。
我还没有发现如何在增加或减少数量时更新每个订单项的总价格。
这是我到目前为止的代码(无法正常工作)...
jQuery.getJSON('/cart.js', function(cart) { $('#line-total-{{ item.id }}').html(Shopify.formatMoney(item.line_price).replace('$','£'))})
关于我的代码有什么问题的任何提示吗?
如果有帮助,也可以单击按钮。
答案 0 :(得分:2)
您的代码包括:
jQuery.getJSON('/cart.js', function(cart) {
$('#line-total-{{ item.id }}').html(Shopify.formatMoney(item.line_price).replace('$','£'))})
以上内容将不起作用,因为基于Liquid的{{ item.id }}
会被放到页面中一次,以后再也不会更改。 (最有可能的是,上面的代码包含在范围内没有名为item
的Liquid变量的地方,因此渲染的Javascript只需读取$('#line-total-')
您将需要使用赋予函数的Javascript cart
对象。例如:
jQuery.getJSON('/cart.js', function(cart) {
for(var i=0; i<cart.items.length; i++){
var item = cart.items[i];
var price_element = $('#line-total-' + item.id)
price_element.html(Shopify.formatMoney(item.line_price).replace('$','£'))})
}
})
希望这会有所帮助!
答案 1 :(得分:0)
您从/cart.js返回了“购物车”,但没有读取其任何数据。
您将需要在JavaScript中通读购物车对象(将其表示为shopify "Cart" object)。我看到您正在尝试获取“ item.id”和“ item.line_price”,但与商品和购物车对象没有关系。此时您也不能使用液体,因为液体已经呈现给客户了。
您可能需要执行以下操作:
patsy