Есть javascript:
$(document).on('click', '.plus-minus button', function() {
var btn = $(this),
oldValue = btn.closest('.plus-minus').find('input').val().trim(),
newVal = 1;
if (btn.attr('data-dir') == 'up') {
newVal = parseInt(oldValue) + 1;
} else {
if (oldValue > 1) {
newVal = parseInt(oldValue) - 1;
} else {
newVal = 1;
}
}
btn.closest('.plus-minus').find('input').val(newVal);
});
Смысл в том, что на странице интернет-магазина при нажатии кнопок + или - добавляется или уменьшается количество товара в поле input. Но он добавляет всегда +1 или -1 к текущему значению. Как переписать его так, чтобы он прибавлял к старому значению это же значение каждый раз?
Пример: первоначальное значение = 2. Нажимаем + и добавляется количество товара +2 (в итоге получается 4), нажимаем еще + и добавляется первоначальное значение к текущему (4+2) в итоге получаем 6. С вычитанием такая же логика должна быть - вычитать самое первое значение. Пробовал просто суммировать каждый раз oldValue + oldValue , но получается что он каждый раз его удваивает.
Попробуйте так:
var vl = false;
$(document).on('click', '.plus-minus button', function() {
var btn = $(this),
oldValue = btn.closest('.plus-minus').find('input').val().trim(),
newVal = vl || oldValue;
vl = newVal;
if (btn.attr('data-dir') == 'up') {
newVal = parseInt(oldValue) + 1;
} else {
if (oldValue > 1) {
newVal = parseInt(oldValue) - 1;
} else {
newVal = 1;
}
}
btn.closest('.plus-minus').find('input').val(newVal);
});
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости