Доброе утро всем жителям форума!
Недавно перешёл на 3.0 с 2.3 и, естессно, немного в шоке. Шаблонизатор, контроллеры и т.п.
Но дело не в этом.
По стандарту на шаблоне (Юнишоп 2) стоят вот такие + - на калькуляторе
Маленькие и неудобные. Пытаюсь исправить для более презентационного вида, типа
На оформление внимания не обращаем, это второстепенно.
Проблема в том, что они завернуты в div
<div class="qty-switch">
<input type="text" name="quantity" value="{{ minimum }}" data-minimum="{{ minimum }}" id="input-quantity" class="qty-switch__input form-control" />
<div>
<i class="qty-switch__btn fa fa-plus btn-default"></i>
<i class="qty-switch__btn fa fa-minus btn-default"></i>
</div>
</div>
И при любом его нарушении просто отказываются работать!
Ни скриптов, ничего другого не обнаружил.
Если в 2.3 всё было понятно, например:
<button class="btn btn-quantity-minus" onclick="btnminus_cat_price_latest_gv3782('1');" type="button">-</button>
function btnminus_cat_price_latest_gv3782(minimum){
var $input = $('#input_quantity_mod_latest_grid03782');
var count = parseInt($input.val()) - parseInt(minimum);
count = count < parseInt(1) ? parseInt(1) : count;
$input.val(count);
$input.change();
recalc_quantity(3782,count,1590.0000,'','.latest_grid0','latest_gv');
}
То как здесь это реализовать?
JS (может, там что-то поменять)?
//quantity
$('body').on('blur click', '.qty-switch__input, .qty-switch__btn', function(e) {
let $elem = $(this);
if($(this).hasClass('qty-switch__btn')) $elem = $(this).parent().prev();
let qty = parseFloat($elem.val()),
min = $elem.data('minimum') ? parseFloat($elem.data('minimum')) : 1,
max = 10000,
step = uniJsVars.qty_switch_step ? min : 1,
decimal = 0,
new_qty;
if($(this).hasClass('qty-switch__input')) {
if(step > 1) {
qty = Math.round(qty/min)*min;
}
new_qty = (qty > min) && (qty < max) ? qty : min;
} else {
new_qty = $(this).hasClass('fa-plus') ? ((qty < max) ? qty+step : qty) : ((qty > min) ? qty-step : qty);
}
new_qty = new_qty.toFixed(decimal);
if($(this).hasClass('qty-switch__input') && e.type == 'click') return;
$elem.val(new_qty).change();
if($(this).closest('.checkout-cart__quantity, .header-cart__quantity').length) {
cart.update($elem.data('cid'), new_qty);
}
});