Я использую Shopify "Streamline Theme" с быстрым просмотром товара, и недавно я добавил бесконечную прокрутку к товарам в каждой коллекции, используя Ajaxinate. js.
Когда я открываю страницу коллекции, она загружается с некоторыми продуктами что и должно быть, продукты там уже работают нормально с быстрым просмотром и быстрым добавлением в корзину, а также.
Прокрутка Infinite работает отлично, и она отлично загружает новый продукт, но проблема возникает, когда новые продукты загружаются через AJAX вызов не работает с функцией быстрого просмотра.
Я попытался создать функцию обратного вызова, чтобы активировать быстрый просмотр безуспешно, с использованием кода инициализации темы безуспешно.
function callBack(){
theme.init();
theme.initQuickShop();
};
document.addEventListener("DOMContentLoaded", function() {
var endlessClick = new Ajaxinate({
method: "scroll",
loadingText: 'Loading...',
callback: callBack
});
});
Редактировать -------
Моя проблема в том, что при загрузке страницы в DOM загружаются только начальные элементы быстрого просмотра товаров. При нажатии кнопки прокрутки больше загруженные продукты загружаются без соответствующих элементов быстрого просмотра. Следовательно, быстрый просмотр не работает для них. Файл theme. js поставляется с этим кодом инициализации:
theme.reinitProductGridItem = function($scope) {
if (AOS) {
AOS.refreshHard();
}
if (theme.settings.currenciesEnabled) {
theme.currencySwitcher.ajaxrefresh();
}
// Reload quick shop buttons
theme.initQuickShop(true);
// Refresh reviews app
if (window.SPR) {
SPR.initDomEls();SPR.loadBadges();
}
// Re-register product templates in quick view modals.
// Will not double-register.
sections.register('product-template', theme.Product, $scope);
// Re-hook up collapsible box triggers
theme.collapsibles.init();
};
Я пытался интегрировать это в функцию обратного вызова, но безуспешно, модал быстрого просмотра не кажется загрузить для недавно загруженных продуктов:
function callBack(){
ReloadSmartWishlist();
var $container = $('#CollectionSection');
theme.reinitProductGridItem($container);
// I have tried the following init qith no success:
// theme.init();
// theme.initQuickShop(true);
// theme.initQuickShop();
// sections.register('product-template', theme.Product, $container);
// AOS.refreshHard();
};
document.addEventListener("DOMContentLoaded", function() {
var endlessClick = new Ajaxinate({
method: "click",
loadingText: 'Loading...',
offset: 0,
callback: callBack
});
});
Я что-то упустил, но что? : / Примечание для других вещей, таких как загрузка изображений товаров с помощью функции обратного вызова и списка желаний, работает как задумано ...