[英]Slick Carousel how to get current slide as a dom or jquery object?
使用slick ,我有一个简单的轮播,大致如下:
<div class="carousel">
<div class="image"><img src="http://path/to/image.jpg" data-caption="Caption 1"></div>
<div class="image"><img src="http://path/to/image2.jpg" data-caption="Caption 2"></div>
<div class="image"><img src="http://path/to/image3.jpg" data-caption="Caption 3"></div>
</div>
我正在使用onAfterChange
函数初始化轮播,以尝试更新另一个 div 中的标题,但对如何将此 div 作为 dom 或 jquery 对象感到困惑?
$('.carousel').slick({
lazyLoad: 'progressive',
onAfterChange: function(slider,index){
console.log(???);
}
});
其中slider
返回轮播对象, index
返回当前幻灯片。
我怎么能从中得到data-caption
的价值?
Arg,抱歉,我在题为Accessing Current Slide Attributes in onAfterChange #411的 github 问题上找到了解决方案。
slider
是指轮播,因此可以访问滑块:
$(slider)
并且可以使用$(slider.$slides.get(index))
访问特定的幻灯片
因此,参考我上面的问题,它很简单:
$(slider.$slides.get(index)).data('caption');
$('.SlickContainer').on('beforeChange', function(event, slick, currentSlide, nextSlide){
var CurrentSlideDom=$(slick.$slides.get(currentSlide));
var NextSlideDom=$(slick.$slides.get(nextSlide));
});
尝试这个
$('.carousel').on('afterChange', function() {
var dataId = $('.slick-current').attr("data-slick-index");
console.log(dataId);
});
变更前
jQuery('.pt-slick-carousel__slides').on('beforeChange', function(event, slick, currentSlide, nextSlide){
console.log(jQuery('.pt-slick-carousel__slides .slick-active').attr('data-slick-index'));
console.log(jQuery('.pt-slick-carousel__slides .slick-active').attr('id'));
});
变更后
jQuery('.pt-slick-carousel__slides').on('afterChange', function(event, slick, currentSlide, nextSlide){
console.log(jQuery('.pt-slick-carousel__slides .slick-active').attr('data-slick-index'));
console.log(jQuery('.pt-slick-carousel__slides .slick-active').attr('id'));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.