Выбор объекта JQuery, возвращающий двойной набор изображений - PullRequest
0 голосов
/ 25 мая 2018

Я работаю над страницей продукта, где у меня есть массив дополнительных изображений продукта, отображаемых под основным изображением продукта.Я загружаю эти дополнительные изображения в коде и отображаю первые 4 изображения с помощью шевронов, чтобы прокручивать эти дополнительные 4 изображения одновременно.Проблема, с которой я столкнулся при отладке JQuery, прокручивающего эти изображения, заключалась в том, что мой цикл each () имел двойной набор изображений, возвращаемых селектором.Странно было то, что правильное количество изображений будет отображаться;это не будет отображать второй набор, но в моей логике, где я прятал правильный шеврон, когда я достиг последнего изображения, у меня были проблемы с определением, что я был на последнем выборе.Вот код для правого щелчка шеврона, где у меня были проблемы:

    $('.chevright').unbind('click').click(function (e) {
    e.preventDefault();
    e.stopPropagation();
    var dsply = $('.chevright').css('display');
    if (dsply === 'none') {
        return;
    }
    var imgcount = 0;
    var imgdisp = '';
    var foundinline = 0;
    var imgclass = '';
    var imglast = $('.addlimgdiv img').last().attr('class').split(' ')[0];
    var lastdisp = '';
    $('.addlimgdiv img').each(function () {
        imgdisp = $(this).css('display');
        if (imgdisp !== 'none') {
            foundinline = 1;
        }
        if (foundinline === 1) {
            if (imgdisp !== 'none') {
                $(this).hide();
            }
            else {
                imgcount++;
                if (imgcount < 5) {
                    var newclass = $(this).attr('class').split(' ')[0];
                    if (newclass > imgclass) {
                        debugger;
                        $(this).show();
                        imgclass = $(this).attr('class').split(' ')[0];
                    }
                }
                else {
                    $(this).hide();
                }
            }
        }
    });
    // Don't go past the last image and hide chevron if last group of images
    debugger;
    if (imgcount < 5) {
        $('.chevright').hide();
    }
    if (imgclass === imglast) {
        $('.chevright').hide();
    }
    $('.chevleft').show();
    return false;
});

Вот скриншот проверки на странице, показывающей 9 изображений: enter image description here

Вот скриншот с дополнительной переменной, показывающий, как выбор удваивает изображения:

enter image description here

Если у кого-то есть идеи, я хотел бы узнать, чтоЯ делаю неправильно, чтобы массив удвоился, как показано.У меня есть дополнительный JQuery, который выполняет функцию масштабирования, и щелкает каждое дополнительное изображение, чтобы заменить отображение основного изображения.

При необходимости я могу предоставить дополнительный код.

Спасибо.

...