Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回双图像集的JQuery对象选择_Jquery_Object_Dynamic Arrays - Fatal编程技术网

返回双图像集的JQuery对象选择

返回双图像集的JQuery对象选择,jquery,object,dynamic-arrays,Jquery,Object,Dynamic Arrays,我正在制作一个产品页面,在主产品图像下显示了一系列附加产品图像。我将这些附加图像加载到代码隐藏中,并用V形文字显示前4个图像,以便一次滚动4个附加图像。调试滚动这些图像的JQuery时遇到的问题是,我的each()循环有一组从选择器返回的两个图像。奇怪的是会显示正确数量的图像;它不会显示第二组,但在我的逻辑中,当我到达最后一张图像时,我很难确定我是在最后一个选择中,我会隐藏右V形。以下是我遇到问题的右V形单击的代码: $('.chevright').unbind('click').cli

我正在制作一个产品页面,在主产品图像下显示了一系列附加产品图像。我将这些附加图像加载到代码隐藏中,并用V形文字显示前4个图像,以便一次滚动4个附加图像。调试滚动这些图像的JQuery时遇到的问题是,我的each()循环有一组从选择器返回的两个图像。奇怪的是会显示正确数量的图像;它不会显示第二组,但在我的逻辑中,当我到达最后一张图像时,我很难确定我是在最后一个选择中,我会隐藏右V形。以下是我遇到问题的右V形单击的代码:

    $('.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;
});
$('.chevright')。解除绑定('click')。单击(函数(e){
e、 预防默认值();
e、 停止传播();
var dsply=$('.chevright').css('display');
如果(dsply===‘无’){
返回;
}
var imgcount=0;
var imgdisp=“”;
var-foundinline=0;
var imgclass='';
var imglast=$('.addlimgdiv img').last().attr('class').split('')[0];
var lastdisp='';
$('.addlimgdiv img')。每个(函数(){
imgdisp=$(this.css('display');
如果(imgdisp!=“无”){
foundinline=1;
}
if(foundinline==1){
如果(imgdisp!=“无”){
$(this.hide();
}
否则{
imgcount++;
如果(imgcount<5){
var newclass=$(this.attr('class').split('')[0];
if(新类>imgclass){
调试器;
$(this.show();
imgclass=$(this.attr('class').split('')[0];
}
}
否则{
$(this.hide();
}
}
}
});
//如果是最后一组图像,请不要越过最后一个图像并隐藏V形
调试器;
如果(imgcount<5){
$('.chevright').hide();
}
if(imgclass===imglast){
$('.chevright').hide();
}
$('.chevleft').show();
返回false;
});
以下是页面上inspect的屏幕截图,显示了9幅图像:

下面是一个屏幕截图,其中包含一个附加变量,显示选择如何使图像加倍:

如果有人有任何想法,我想知道我做了什么错误的阵列双起来,如图所示。我确实有额外的JQuery做缩放功能,并点击每个额外的图像来替换主图像显示

如果需要,我可以提供额外的代码


谢谢。

选择器不会将DOM中的元素加倍。由于您正在执行
$('.addlimgdiv img')
,这表明您在整个文档中有18个元素与该选择器匹配。您应该在
document.querySelectorAll('.addlimgdiv img')
中看到同样的情况。您确定该页面上没有多个产品吗?谢谢您的反馈。我没有注意到这实际上在页面源代码上显示了两次。我昨天肯定查过了。此asp.net控件页必须加载两次。但是你的建议非常有用。