Некорректно отрабатывает счётчик

201
06 июля 2022, 17:50

Подскажите, в чём может быть проблема? Не округляются десятичные(

$('.le-quantity div').click(function(e) {
  e.preventDefault();
  var elem = $(this).parent().parent().find('input.counter');
  var currentQty = elem.val();
  var cur = Math.round(currentQty * 100) / 100;

  if ($(this).hasClass('minus') && cur > 0) {
    elem.val(cur - 0.1);
    elem.trigger("change");
  } else {
    if ($(this).hasClass('plus')) {
      elem.val(cur + 0.1);
      elem.trigger("change");
    }
  }
});
.le-quantity {
  display: flex;
  justify-content: center;
  align-items: center;
}
.input-box {
  display: flex;
  align-items: center;
  justify-content: center;
}
.input-number__add {
  width: 40px;
  height: 40px;
  margin: 0 10px;
  background-color: yellow;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
<div class="le-quantity"> 
 <div class="input-number product__quantity plusMinus">
 <input id="product_price"  class="input-number__input form-control form-control-lg counter" type="text" name="count" step="0.01" min="1" maxlength="3" value="1">
<div class="input-box">
  <div class="input-number__add plus">+</div>
  <div class="input-number__add minus">-</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Answer 1

Может так

$('.le-quantity div').click(function(e) {
  e.preventDefault();
  var elem = $(this).parent().parent().find('input.counter');
  var currentQty = +elem.val()*10;
  var cur = currentQty;

  if ($(this).hasClass('minus') && cur > 0) {
    elem.val((cur - 1)/10);
    elem.trigger("change");
  } else {
    if ($(this).hasClass('plus')) {
      elem.val((cur + 1)/10);
      elem.trigger("change");
    }
  }
});
.le-quantity {
  display: flex;
  justify-content: center;
  align-items: center;
}
.input-box {
  display: flex;
  align-items: center;
  justify-content: center;
}
.input-number__add {
  width: 40px;
  height: 40px;
  margin: 0 10px;
  background-color: yellow;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
<div class="le-quantity"> 
 <div class="input-number product__quantity plusMinus">
 <input id="product_price"  class="input-number__input form-control form-control-lg counter" type="text" name="count" step="0.01" min="1" maxlength="3" value="1">
<div class="input-box">
  <div class="input-number__add plus">+</div>
  <div class="input-number__add minus">-</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

READ ALSO
Найти индекс уникального элемента массива

Найти индекс уникального элемента массива

Есть массив из трех целых элементов, один из элементов отличается от других, остальные одинаковы, нужно сравнить элементы, и вывести индекс...

197
помощь с функцией и параметром if else

помощь с функцией и параметром if else

Есть парковка, на ней определенное количество мест для легковых машин и для грузовых машин

174
zoom-in эффект при прокрутке, эффект нужен для div

zoom-in эффект при прокрутке, эффект нужен для div

Ищу zoom-in эффект при прокрутке, аналог Эффект в секции з заголовком "REFORM CO"

175