@danchiksux
Говнокодер

Как отменить действие функции которая высчитывает скидку и пересчитать её заново?

Есть у меня функция которая меняет цену в зависимости от скидки, но так же у меня есть 2 галочки которые прибавляют по 6 и 1 тысячи. Как мне отменять скидку и высчитывать её из новой цены?
Начальная цена 6000р от неё отнимают 20% получается 4800р.
Когда я нажимаю на галочку прибавляется ещё 6000р. Скидка должна посчитаться от новой цены то есть от 12000.
Галочки которые прибавляют по 6000 и 1000.
$('#extra').on('click', function() {
		var nac_price = $('.complete:not(#complete2)').text().split(' ');
		var old_price =  parseInt(nac_price[1]);
		if ($("#extra").prop("checked") == true) {
			var new_price = old_price + 6000;
			$('.complete:not(#complete2)').text("Цена: " + new_price + " руб.")
		} else {
			var new_price = old_price - 6000;
			$('.complete:not(#complete2)').text("Цена: " + new_price + " руб.")
		}
	})

	$('#copy').on('click', function() {
		var nac_price = $('.complete:not(#complete2)').text().split(' ');
		var old_price =  parseInt(nac_price[1]);
		if ($("#copy").prop("checked") == true) {
			var new_price = old_price + 1000;
			$('.complete:not(#complete2)').text("Цена: " + new_price + " руб.")
		} else {
			var new_price = old_price - 1000;
			$('.complete:not(#complete2)').text("Цена: " + new_price + " руб.")
		}
	})

Высчитывание скидки:
function sale() {
		var sale_str = $('.sale').text();
		if (sale_str != '') {
			sale_arr = sale_str.split(' ');
			sale = sale_arr[2].replace('%', '');
			var price_arr = $('.complete:not(#complete2)').text().split(' ');
			var price = price_arr[1];
			var new_price = (price / 100) * (100 - sale);
			$('.complete:not(#complete2)').text("Цена: " + new_price + " руб.");
		}
	}
	sale()

<span id="complete" class="complete">Цена: 6000 руб.</span>
<span class='sale'>Действует скидка 20%</span>
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Какая жуть...
А что мешает хранить цену отдельно, например в data-атрибуте, а показывать уже со скидкой?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы