jquery 光滑的转盘与显示:没有幻灯片和点的问题与点计数

vjhs03f7  于 2023-08-04  发布在  jQuery
关注(0)|答案(1)|浏览(114)

我用这个来初始化一个Slick旋转木马

$('.column').each(function () {
    const elementsContainer = $(this).find('.elements');

    if (elementsContainer.hasClass('slick-initialized')) {
      elementsContainer.slick('unslick');
    }

    var slides = elementsContainer.children().not('.d-none');
    $(this).toggleClass('d-none', slides.length == 0);
    $(elementsContainer).toggleClass('d-none', slides.length == 0);

    if(slides.length > 0) {
      elementsContainer
        .slick({
          autoplay: false,
          dots: slides.length > 1,
          arrows: false,
          infinite: false,
          speed: 300,
          appendDots: $(this),
          dotsClass: 'dots',
          slidesToShow: 1,
          slidesToScroll: 1,
          swipeToSlide: slides.length > 1,
          draggable: slides.length > 1,
        })
        .slick('slickAdd', slides);
    }
  });

字符串
滑块工作正常。唯一的问题是,我得到的点的数量总是elementsContainer.children().length,虽然它应该是slides.length-这意味着点也显示为那些没有d的幻灯片,没有显示,这是我不想要的。这些d-none幻灯片可以位于elementsContainer中的任何位置...
有没有一种合理的方法来确保只显示没有类d-none的幻灯片的点?

xmakbtuz

xmakbtuz1#

通过使用.slick('slickFilter', ':not(.d-none)');而不是.slick('slickAdd', slides);解决了这个问题

相关问题