带缩略图的Bootstrap轮播(多个轮播)

时间:2014-09-09 19:29:41

标签: javascript jquery html twitter-bootstrap carousel

我正在查找如何使用缩略图创建Bootstrap轮播,我遇到了这个: http://jsfiddle.net/xuhP9/67/

$('#myCarousel').carousel({
interval: 4000
});

$('[id^=carousel-selector-]').click(function () {
 var id_selector = $(this).attr("id");
 var id = id_selector.substr(id_selector.length - 1);
 id = parseInt(id);
 $('#myCarousel').carousel(id);
 $('[id^=carousel-selector-]').removeClass('selected');
 $(this).addClass('selected');
});

$('#myCarousel').on('slid', function (e) {
 var id = $('.item.active').data('slide-number');
 id = parseInt(id);
 $('[id^=carousel-selector-]').removeClass('selected');
 $('[id^=carousel-selector-' + id + ']').addClass('selected');
});

哪个效果很好,但是,我需要在页面中有多个轮播,我不太清楚如何才能实现这一点。我厌倦了将id选择器切换到类选择器,所以我可以创建多个。但是我不确定如何实际修复JS功能以使其工作,因为它们似乎是盲目的。

基本上,这就是我想要完成的任务:http://jsfiddle.net/xuhP9/70/但不为我创建的每个独立轮播重复JS。

提前致谢!

1 个答案:

答案 0 :(得分:3)

此方法要求您的轮播使用ID = myCarousel1,myCarousel2等。

和相应轮播的选择器是carousel-selector1-1,carousel-selector1-2 ...和carousel-selector2-1,carousel-selector2-2

更新小提琴:http://jsfiddle.net/xuhP9/77/

$('.customCarousel').carousel({
     interval: 4000
 });

 // handles the carousel thumbnails
 $('[id^=carousel-selector]').click(function () {
     var id_selector = $(this).attr("id");
     var id = id_selector.substr(id_selector.length - 1);
     id = parseInt(id);
     var parent = $(this).closest('ul').data('carousel');
     $('#myCarousel' + parent).carousel(id);
     $('[id^=carousel-selector' + parent +'-]').removeClass('selected');
     $(this).addClass('selected');
 });

 // when the carousel slides, auto update
 $('.customCarousel').on('slid', function (e) {
     var cont = $(this).data('carousel');
     var id = $('#myCarousel'+ cont +' .item.active').data('slide-number');
     id = parseInt(id);
     $('[id^=carousel-selector' +cont+'-]').removeClass('selected');
     $('[id^=carousel-selector'+cont+'-' + id + ']').addClass('selected');
 });