我有一个带有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');
});
感谢任何帮助!
答案 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。