【发布时间】:2021-01-26 10:25:47
【问题描述】:
我想为我的收藏页面在 shopify 中使用 ajax 进行过滤。 所以我有从 collection.products 收集产品的 ajax 代码:
let allProducts = {{ collection.products | json }};
$(".sidebar-btn").on("click", () => {
allProducts.forEach(product => {
jQuery.ajax({
url: '/products/'+product.handle,
dataType: 'json'
})
.done(function(data){
console.log(data.product.tags);
if(data.product.vendor !== "NATURECAN"){
console.log($(`.product-${data.product.id}`));
}
});
});
});
它会过滤代码,但问题是产品已经渲染到 DOM。我想要的是将通过过滤器的产品发送回“包含”:
<ul class="grid grid--uniform{% if collection.products_count > 0 %} grid--view-items{% endif %}">
{% for product in collection.products %}
<li class="grid__item grid__item--{{section.id}} {{ grid_item_width }} product-{{product.id}}">
{% include 'product-card-grid', max_height: max_height, product: product, show_vendor: section.settings.show_vendor %}
</li>
有没有办法做到这一点。我不能使用 url 作为参数,所以我必须这样做。提前致谢。
(P.S. 我对 shopify 和流动性有点陌生,所以如果解释不够好,我很抱歉)
【问题讨论】:
标签: jquery ajax shopify liquid