提问者:小点点

缩略图url已更改,但在调整ajax大小之前不会反映


你好,我有一个图像滑块和一些图片。 在ajax的帮助下,我正在更改图像url,图像工作良好。 而在缩略图的情况下,我可以看到的变化反映在控制台,但它不会反映在网页上,直到我调整了页面的大小。

            console.log(url);
            $('.img1').attr("src",url+"/RUST_1.jpg");
            $('.img2').attr("src",url+"/RUST_2.jpg");
            $('.img1thumb').attr("data-thumb",url+"/RUST_1.jpg");
            $('.img2thumb').attr("data-thumb",url+"/RUST_2.jpg");

         <ul id="image-gallery"  class="gallery list-unstyled cS-hidden">              
         <li class="img1thumb" data-thumb="../images/<?php echo $item[0]->DESIGN; ?>/<?php echo $item[0]->COLOR_CODE;?>/RUST_1.jpg" >
         <img class="img1" class="card-img-top" class="img" src="../images/<?php echo $item[0]->DESIGN; ?>/<?php echo $item[0]->COLOR_CODE; ?>/RUST_1.jpg"  alt="Card image" style="width:100%" />
         </li>
         <li class="img2thumb" data-thumb="../images/<?php echo $item[0]->DESIGN; ?>/<?php echo $item[0]->COLOR_CODE; ?>/RUST_2.jpg" >
         <img class="img2" class="card-img-top" class="img" src="../images/<?php echo $item[0]->DESIGN; ?>/<?php echo $item[0]->COLOR_CODE; ?>/RUST_2.jpg"  alt="Card image" style="width:100%" />
         </li>
         </ul>

我在lightslider.js中找到了这个

var thumb = $children.eq(i * settings.slideMove).attr('data-thumb');
                    if (settings.gallery === true) {
                        pagers += '<li style="width:100%;' + property + ':' + thumbWidth + 'px;' + gutter + ':' + settings.thumbMargin + 'px"><a href="#"><img src="' + thumb + '" /></a></li>';
                    } else {
                        pagers += '<li><a href="#">' + (i + 1) + '</a></li>';
                    }
                    if (settings.mode === 'slide') {
                        if ((v) >= w - elSize - settings.slideMargin) {
                            i = i + 1;
                            var minPgr = 2;
                            if (settings.autoWidth) {
                                pagers += '<li><a href="#">' + (i + 1) + '</a></li>';
                                minPgr = 1;
                            }
                            if (i < minPgr) {
                                pagers = null;
                                $slide.parent().addClass('noPager');
                            } else {
                                $slide.parent().removeClass('noPager');
                            }
                            break;
                        }
                    }
                }

共1个答案

匿名用户

很抱歉浪费您的时间,但是lightslider提供了一个公共功能来刷新滑块

步骤1:获取光滑块的对象

slider = $(document).find('#image-gallery').lightSlider({});

步骤2:更改图像url后调用刷新函数

slider.refresh();

来源:https://github.com/sachinchoolur/lightslider/blob/aa6c01e1e0fbf180eed67447471dfc24d29a3ae1/readme.md