注意:我知道这是一个常见问题,并且已经写了很多关于此的文章,但我似乎无法修复它。
我的 Shopify 商店使用 Ajax 调用将产品添加到购物车并使用 jQuery 更新前端。我最近安装了infinite-ajax-scroll,但这带来了一些问题。
当向下滚动到由infinite-ajax-scroll 加载的产品,然后单击添加到购物车按钮时,ajax 调用和jQuery 更新不再起作用,它会将我重定向到购物车页面。
这是我用来激活 IAS 的内联脚本:
<script>
var ias = jQuery.ias({
container: '#products',
item: '.single-product',
pagination: '.pagination-custom',
next: '.next'
});
ias.extension(new IASSpinnerExtension({
src: '{{ "spiffygif_36x36.gif" | asset_url }}'
}));
</script>
这是负责将产品添加到购物车的代码(ajaxify.js第 161 - 194 行):
Shopify.addItemFromForm = function(form, callback, errorCallback) {
// Unbind IAS
ias.destroy();
var params = {
type: 'POST',
url: '/cart/add.js',
data: jQuery(form).serialize(),
dataType: 'json',
success: function(line_item) {
if ((typeof callback) === 'function') {
callback(line_item, form);
}
else {
Shopify.onItemAdded(line_item, form);
}
},
error: function(XMLHttpRequest, textStatus) {
if ((typeof errorCallback) === 'function') {
errorCallback(XMLHttpRequest, textStatus);
}
else {
Shopify.onError(XMLHttpRequest, textStatus);
}
}
};
jQuery.ajax(params);
var variant_id = params.data.split('=')[1]
$( "#var-id-" + variant_id + " " + "#in-cart-indicator" ).removeClass( "not-in-cart" ).addClass( "triangle-top-right" );
// Bind IAS
ias.bind();
};
我已经添加了基于此 SO postbind
的and方法,但没有成功。unbind
我究竟做错了什么?
您可以在此处查看相关页面。