Некорректная работа калькулятора
Подскажите в чём может быть проблема, если счётчик меньше одного, идёт некорректный расчёт и добавляются непонятные суммы на выходе. Не могу понять чего не хватает.
$('.dec').click(function () {
var countner = $('.t-count').text();
$('.t-count').text(countner/2);
var total = $('.total-price').text();
$('.total-price').text(total/2);
var $input = $(this).parent().find('input');
var count = parseInt($input.val()) - 1;
count = count < 1 ? 1 : count;
$input.val(count);
$input.change();
return false;
});
$('.inc').click(function () {
var countner = $('.t-count').text();
$('.t-count').text(countner*2);
var total = $('.total-price').text();
$('.total-price').text(total*2);
var $input = $(this).parent().find('input');
$input.val(parseInt($input.val()) + 1);
$input.change();
return false;
});
.cart-plus-minus {
display: inline-block;
height: 30px;
overflow: hidden;
padding: 0;
position: relative;
width: 80px;
border: solid 1px rgba(52, 53, 56, 0.7);
border-radius: 2px;
}
input {
background: transparent none repeat scroll 0 0;
border: none;
color: #343538;
float: left;
font-size: 16px;
line-height: 25px;
height: 30px;
margin: 0;
padding: 0;
text-align: center;
width: 80px;
}
.qtybutton {
cursor: pointer;
float: inherit;
font-size: 16px;
line-height: 16px;
margin: 0;
position: absolute;
text-align: center;
transition: all 0.3s ease 0s;
width: 24px;
}
.dec {
height: 30px;
left: 0;
padding-top: 5px;
top: 0;
}
.inc {
height: 30px;
padding-top: 6px;
right: 0;
top: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cart-plus-minus">
<input class="cart-plus-minus-box" type="text" name="qtybutton" value="1">
<div class="dec qtybutton">-</div>
<div class="inc qtybutton">+</div>
</div>
<div class="price-counter">
<span>Площадь</span>
<span class="t-count" style="color: rgba(206, 0, 0, 0.8);">0.5</span>
</div>
<div class="price-counter">
<span>Цена</span>
<span class="total-price" style="color: rgba(206, 0, 0, 0.8);">1.2</span>
</div>
Ответы (1 шт):
Автор решения: UModeL
→ Ссылка
$('.dec').click(function() {
var $input = $(this).parent().find('input');
var count = parseInt($input.val()) - 1;
if (count > 0) {
var countner = $('.t-count').text();
$('.t-count').text(countner / 2);
var total = $('.total-price').text();
$('.total-price').text(total / 2);
} else {
count = 1;
}
$input.val(count);
$input.change();
return false;
});
$('.inc').click(function() {
var $input = $(this).parent().find('input');
$input.val(parseInt($input.val()) + 1);
$input.change();
var countner = $('.t-count').text();
$('.t-count').text(countner * 2);
var total = $('.total-price').text();
$('.total-price').text(total * 2);
return false;
});
.cart-plus-minus {
display: inline-block;
height: 30px;
overflow: hidden;
padding: 0;
position: relative;
width: 80px;
border: solid 1px rgba(52, 53, 56, 0.7);
border-radius: 2px;
}
input {
background: transparent none repeat scroll 0 0;
border: none;
color: #343538;
float: left;
font-size: 16px;
line-height: 25px;
height: 30px;
margin: 0;
padding: 0;
text-align: center;
width: 80px;
}
.qtybutton {
cursor: pointer;
float: inherit;
font-size: 16px;
line-height: 16px;
margin: 0;
position: absolute;
text-align: center;
transition: all 0.3s ease 0s;
width: 24px;
}
.dec {
height: 30px;
left: 0;
padding-top: 5px;
top: 0;
}
.inc {
height: 30px;
padding-top: 6px;
right: 0;
top: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cart-plus-minus">
<input class="cart-plus-minus-box" type="text" name="qtybutton" value="1">
<div class="dec qtybutton">-</div>
<div class="inc qtybutton">+</div>
</div>
<div class="price-counter">
<span>Площадь</span>
<span class="t-count" style="color: rgba(206, 0, 0, 0.8);">0.5</span>
</div>
<div class="price-counter">
<span>Цена</span>
<span class="total-price" style="color: rgba(206, 0, 0, 0.8);">1.2</span>
</div>