@Genri_Rus

Как вывести checked, если id чекбоксов сохранены в localStotage?

Всем доброго времени суток и с наступающим праздником

Вопрос в названии, вот пример: https://codepen.io/Genri_Rus/pen/gyKjRR

В localStorage данные сохраняются, но галочки не сохраняются после перезагрузки страницы:

const shoppingCart = (function() {
     let cart = [];
     const localName = 'local';

     function Item(id, p) {
        this.id = id;
        this.p = p;
        // console.log(p);
      }

      function saveCart() {
        localStorage.setItem(localName, JSON.stringify(cart));
      }

      function loadCart() {
        cart = JSON.parse(localStorage.getItem(localName));
        if (cart === null) {
          cart = []
        }
      }
  
      loadCart();
  
      var obj = {};

			obj.addItemToCart = function(id, p) {
				for (var i in cart) {
					if (cart[i].id === id) {
						saveCart();
						return;
					}
				}

				var item = new Item(id, p);
				cart.push(item);
				saveCart();
			};
      return obj;
})();
    $('body').on('change', '.check', function(){
    let modal = $('.modal');

    if ($('input').is(':checked')) {
        if (!modal.children().is('.item')) modal.html('');
    } else {
        modal.removeClass('modal-show').text('Здесь ничего нет');
    }
    
    if ($(this).prop('checked')) {
        let id = $(this).attr('id');
        let p  = $(this).parent().siblings('.copy, .copy-2').text();
        shoppingCart.addItemToCart(id, p);
      
        modal.addClass('modal-show');
     }
});
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 1
Vlad_IT
@Vlad_IT Куратор тега jQuery
Front-end разработчик
Галочки сохраняются, когда вы их устанавливаете. Но не сохраняются, когда снимаете, т.к. у вас не реализован функционал удаления товара из корзины. Поэтому на каждый клик по чекбоксу, товар добавляется в корзину.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы