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