Ответы пользователя по тегу JavaScript
  • Как добавить выбранное значение select в корзину?

    @Valsin Автор вопроса
    Задача была решена таким способом:

    var cart = {};
    function CartInsert() {
    	//добавляем товар в корзину
    	var id = $('#target').attr('data-id');
    	//console.log(id);
    	if (cart[id]==undefined) {
    		cart[id] = 1; //если нет товара = 1
    	}
    	else {
    		cart[id]++; //если товар есть +1
    	}
    	CalcInCart();
    }
    function loadCart() {
    	// проверка на наличие записи cart в localStorage
    	if (localStorage.getItem('cart')) {
    		// расшифровка и запись переменной
    		cart = JSON.parse(localStorage.getItem('cart'));
    			CalcInCart();
    		}
    	else {
    		$('.popup-goods').html('Корзина пуста!');
    	}
    }
    
    function CalcInCart() {
    	$.getJSON('/mainstamp/wp-content/themes/stamp-theme/prints.json', function (data) {
    			var out = '';
    			for (var key in cart) {
    				out += '<button data-id="'+key+'" class="del-goods">x</button>';
    				out += '<div class="popup-good">';
    				out += '<div class="popup-good__img">';
    				out += '<img src="/mainstamp/wp-content/themes/stamp-theme/'+data[key].img+'">';
    				out += '</div>';
    				out += '<div class="popup-good__title">';
    				out += data[key].name;
    				out += '</div>';
    				out += '<div class="popup-good__color">';
    				out += '<img src="/mainstamp/wp-content/themes/stamp-theme/'+data[key].color+'">';
    				out += '</div>';
    				out += '<div class="popup-good__stamp">';
    				out += '</div>';
    				out += '<div class="popup-good__technology">';
    				out += data[key].technology;
    				out += '</div>';
    				out += '<div class="popup-good__time">';
    				out += data[key].time
    				out += '</div>';
    				out += '<div class="poputp-good__score">';
    				out += '<button data-id="'+key+'" class="minus-goods">-</button>'
    				out += cart[key];
    				out += '<button data-id="'+key+'" class="plus-goods">+</button>'
    				out += '</div>';
    				out += '<div class="popup-good__price">';
    				out += cart[key]*sum;
    				out += '</div>';
    				out += '</div>';
    			}
    			$('.popup-goods').html(out);
    });
    }
    $(document).ready(function() {
    	loadCart();
    });
    
    
    
    $('#select-stamp').change(function() {
    	changePrice();
    	$('#target').attr('data-id', $('#select-stamp option').filter(':selected').data('id'));
    });
    $('#target').on('click', function() {
    	CartInsert();
    });
    Ответ написан
    Комментировать
  • Как сменить картинку при изменении select?

    @Valsin Автор вопроса
    selectImageStamp = $('#select-stamp option').filter(':selected').data('img');
    $('#calcImg').attr("src", selectImageStamp);
    Ответ написан
    Комментировать
  • Почему выводится только первая функция?

    @Valsin Автор вопроса
    Необходимо было добавить
    $('.callback-popup__close').on("click", function(){
    		$('.callback').hide();
    	});
    	$('body').on("click", function(event) {
    		if ($(event.target).closest('.callback-popup').length 
                    || $(event.target).closest('.navbar-button').length 
                    || $(event.target).closest('.button-cb').length 
                    || $(event.target).closest('.prices-block__href').length) return;
    		$('.callback').hide();
    	});
    });
    Ответ написан
    Комментировать
  • Где найти задачи по js?

    @Valsin
    Проект Эйлера, codewars, если разобрать только изученную тему - learn.javascript - в конце каждой главы задачи
    Ответ написан
    Комментировать