Переключение вида список\плитка и 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"]');
но при переключении вида отображения список\плитка скрипт не срабатывает. Т.е. если сразу зайти на страницу любого из вариантов, то все корректно работает, а если переключиться то нет. Подскажите, почему так происходит?
Виталий
14 октября 2019, 10:06
modx.pro
731
0

Комментарии: 2

Баха Волков
14 октября 2019, 14:47
0
Проблема в том, что вы навешиваете события на элементы при загрузке страницы, а при переключении вида у вас используется ajax и они уже являются новыми элементами у которых нет ваших функций. Советую переписать всё это дело или воспользоваться событием mse2_load:

$(document).on('mse2_load', function(e, response) {
    itemCount('[data-amout="amout"]');
});
    Виталий
    15 октября 2019, 15:15
    0
    Спасибо большое! Разобрался с вашей помощью в чем дело. сразу не сообразил, что они по ajax меняются
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2