Переключение вида список\плитка и js
Добрый день
в категории товаров, в чанке tpl.msProducts.row, добавление товаров в корзину осуществляется с изменением количества (кнопки + и -) с помощью js:
в категории товаров, в чанке tpl.msProducts.row, добавление товаров в корзину осуществляется с изменением количества (кнопки + и -) с помощью js:
function itemCount(field){
var fieldCount = function(el) {
var
// Мин. значение
min = el.data('min') || false,
// Макс. значение
max = el.data('max') || false,
// Кнопка уменьшения кол-ва
dec = el.prev('.minus'),
// Кнопка увеличения кол-ва
inc = el.next('.plus');
function init(el) {
if(!el.attr('disabled')){
dec.on('click touchstart', decrement);
inc.on('click touchstart', increment);
}
// Уменьшим значение
function decrement() {
var value = parseInt(el[0].value);
value--;
if(!min || value >= min) {
el[0].value = value;
}
el.trigger('change')
}
// Увеличим значение
function increment() {
var value = parseInt(el[0].value);
value++;
if(!max || value <= max) {
el[0].value = value++;
}
el.trigger('change')
}
}
el.each(function() {
init($(this));
});
};
$(field).each(function(){
fieldCount($(this));
});
} itemCount('[data-amout="amout"]');
но при переключении вида отображения список\плитка скрипт не срабатывает. Т.е. если сразу зайти на страницу любого из вариантов, то все корректно работает, а если переключиться то нет. Подскажите, почему так происходит? Комментарии: 2
Проблема в том, что вы навешиваете события на элементы при загрузке страницы, а при переключении вида у вас используется ajax и они уже являются новыми элементами у которых нет ваших функций. Советую переписать всё это дело или воспользоваться событием mse2_load:
$(document).on('mse2_load', function(e, response) {
itemCount('[data-amout="amout"]');
});
Спасибо большое! Разобрался с вашей помощью в чем дело. сразу не сообразил, что они по ajax меняются
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.