带缩略图的Bootstrap轮播

时间:2016-03-18 07:11:31

标签: javascript jquery html css twitter-bootstrap

我有一个带有html内容显示滑动的bootstrap轮播。

这里的问题是,它可以正常工作直到第9个缩略图,但是当点击第11个和第12个时,它会滑回第一个内容框而不是相应的ID。

这是使用的脚本

$('#myCarousel').carousel({
              pause: true,
              interval: false
            });

            // 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);
              $('#myCarousel').carousel(id);
              $('[id^=carousel-selector-]').removeClass('selected');
              $(this).addClass('selected');
            });

            $('#myCarousel').bind('slide.bs.carousel', function (e) {
              var slideFrom = $(this).find('.active').index();
              var videoContent = $('.item[data-slide-number='+slideFrom+'] .embed-responsive');
              videoContent.html( videoContent.html() );
            });

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

感谢任何帮助!

DEMO

3 个答案:

答案 0 :(得分:2)

使用:

var parts = id_selector.split("-");
var id = parts[parts.length - 1]

而不是

var id = id_selector.substr(id_selector.length -1);

如果您选择id,则只会获得0的{​​{1}}的最后一个字符。

相反,我在10之后取了最后一个字/值。

<强> Working Fiddle

答案 1 :(得分:0)

在这一行

var id = id_selector.substr(id_selector.length -1);

你说的是id_selector.length-1,它总是会给出id_selector的最后一个字符,所以在id_selector_10的情况下,你的id为0,id_selector_11也是如此。

如果用以下代码替换它,它将正常工作。

var idIndex = id_selector.lastIndexOf('-') + 1;// Get the index of character where digit starts
var id = id_selector.substr(idIndex); //Get id from that index

<强> Updated Demo

答案 2 :(得分:0)

更改以下行
var id = id_selector.substr(id_selector.length -1);
id = parseInt(id);

对此:(id_selector.length-2)

var id = id_selector.substr(id_selector.length -2);
id = parseInt(id);

您唯一需要做的就是重新编号这样的整套Carousel ID

<li> <a id="carousel-selector-00" class="selected">
<li> <a id="carousel-selector-01">
<li> <a id="carousel-selector-02">
<li> <a id="carousel-selector-03">
<li> <a id="carousel-selector-04">............

这应该可以解决你的问题! 正在采用长度并减去1.但是现在,由于你要减去2个字符来找到ID,你将获得00和01,然后到11和12。