如何从轮播中获取当前索引?
在这种情况下,我使用的是无序列表。我知道我可以搜索列表项以找到具有“活动”CSS类的那个,但我想知道我是否可以直接询问轮播对象。
附加:能够访问目标索引(在“幻灯片”事件上)也很方便。再次,我可以通过搜索:
来做到这一点var idx = $('.carousel-inner li.active').index();
...然后根据方向添加/减去,但我希望有更清洁的东西。
答案 0 :(得分:64)
不是在当前幻灯片中添加和减去,而是在“幻灯片”事件中尝试:
$('.carousel').on('slide',function(e){
var slideFrom = $(this).find('.active').index();
var slideTo = $(e.relatedTarget).index();
console.log(slideFrom+' => '+slideTo);
});
答案 1 :(得分:18)
这对我有用(Bootstrap 3)
$("#myCarousel").on('slide.bs.carousel', function(evt) {
console.debug("slide transition started")
console.debug('current slide = ', $(this).find('.active').index())
console.debug('next slide = ', $(evt.relatedTarget).index())
})
答案 2 :(得分:12)
答案 3 :(得分:11)
对于bootstrap 3,它是
$('#myCarousel').on('slide.bs.carousel', function (e) {
var active = $(e.target).find('.carousel-inner > .item.active');
var from = active.index();
var next = $(e.relatedTarget);
var to = next.index();
console.log(from + ' => ' + to);
})
来自https://github.com/twbs/bootstrap/pull/2404#issuecomment-22362366
答案 4 :(得分:10)
$(".active", e.target).index()
有效。 e来自:
carousel.on(“slid”,function(e){ $(“。active”,e.target).index(); });
发现于:https://github.com/twitter/bootstrap/pull/2404#issuecomment-4589229
答案 5 :(得分:7)
我这样做,有点好用;)
var slider = $("#slider-wrapper")
.carousel({
interval: 4000
})
.bind('slid', function() {
var index = $(this).find(".active").index();
$(this).find("a").removeClass('pager-active').eq(index).addClass('pager-active');
});
$("#slider-wrapper a").click(function(e){
var index = $(this).index();
slider.carousel(index);
e.preventDefault();
});
答案 6 :(得分:1)
这是我在@ Quelltextfabrik的回答中阅读胖子评论后想出来的。
var carousel = $("#myCarousel");
carousel.on("slid", function () {
var all = carousel.find('.item'),
active = carousel.find('.active'),
slidTo = all.index(active);
console.log("Slid - Slid To: " + slidTo);
});
carousel.on("slide", function () {
var all = carousel.find('.item'),
active = carousel.find('.active'),
slidFrom = all.index(active);
console.log("Slide - Slid From: " + slidFrom);
});
答案 7 :(得分:0)
我能够使用引导documentation中的jquery函数访问幻灯片索引。
$('#carousel').on('slide.bs.carousel', function(event) {
alert(event.from);
// You can use use 'event.from' in whatever way works best for you here
}
事件上的 .from
将为您提供幻灯片实例所在的幻灯片。 .to
将为您提供幻灯片实例要去往的幻灯片。使用slide.bs.carousel
将在幻灯片动画之前执行该功能,slid.bs.carousel
将在幻灯片动画之后执行该功能,但返回的幻灯片编号相同。
slide
和slid
事件还可以让您访问其他一些属性,建议您在轮播文档页面上将其检出。
注意:我正在使用引导程序4.3.1。