Сообщение от nathan111777
|
Под вторым имеется код где товары фильтруется фильтрами
|
А фильтрация где производится, наверное же на страницах так ведь? А значит зачем вообще нужен дубликат товаров в виде массива?
Можно сделать так (я пишу тезисы, если поймете, то напишите так, если нет, тогда конкретно код):
1) Функция loadGoods не нужна, и лучше ее заменить на вывод html кода товаров, для примера назовем ее showGoods. Она содержит только вывод товаров из определенного ранее объекта, назовем его goods.
var out = '';
for (var key in goods[sex]) { ....
2) Объект с товарами получается один раз при загрузке страницы (ocument.addEventListener('DOMContentLoaded' .....), для этого проверяется: если переменная goods не определена (можно проверять и определенную на пустоту), то делается запрос на сервер $.getJSON('goods.json' .... результат которого (объект) присваивается переменной goods, а далее управление передается функции showGoods и далее у вас по списку.
Это позволит работать с объектом товаров любому сценарию на странице.
PS. Не известно какие сценарии и как будут исполняться, но если все просто, то можно всего лишь изменить это:
var cart = {};
document.addEventListener('DOMContentLoaded', function (e) {
loadGoods();
checkCart();
showMiniCart();
});
на
var cart = {}, goods;
document.addEventListener('DOMContentLoaded', function () {
$.getJSON('goods.json', function (data) {
goods = data;
showGoods(); //читайте выше
checkCart();
showMiniCart();
});
});
и далее везде работать с объектом goods.