我用这个来初始化一个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
的幻灯片的点?
1条答案
按热度按时间xmakbtuz1#
通过使用
.slick('slickFilter', ':not(.d-none)');
而不是.slick('slickAdd', slides);
解决了这个问题