如果只有一个滑块,则隐藏Twitter Bootstrap左右箭头

Zac*_*ter 5 javascript jquery twitter-bootstrap

我一直试图隐藏Bootstrap Carousel左右按钮,如果只有一个滑块,但似乎无法让它正常工作.

我试过了

    if ($('.carousel-inner div').length === 1 ) { 
        $(this).find('.controls .carousel-control').hide();
    }
Run Code Online (Sandbox Code Playgroud)

    if($('.carousel-inner .item').is(':only-child')) {
    $(this).find('.controls .carousel-control').hide();
Run Code Online (Sandbox Code Playgroud)

没有运气.

有没有特别的理由为什么这些都不会起作用?控制台返回正确数量的滑块.length,我.hide在处理此轮播的不同功能上使用完全相同的方法.

Guy*_*uyC 13

只要您每页有1个轮播,接受的答案就可以正常工作.我有一对,所以我想加入解决方案:

基于使用标准Bootstrap Carousel Mark up:

<div id="myCarousel" class="carousel slide">
  <ol class="carousel-indicators">
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#myCarousel" data-slide-to="1"></li>
    <li data-target="#myCarousel" data-slide-to="2"></li>
  </ol>
  <!-- Carousel items -->
  <div class="carousel-inner">
    <div class="active item">…</div>
    <div class="item">…</div>
    <div class="item">…</div>
  </div>
  <!-- Carousel nav -->
  <a class="carousel-control left" href="#myCarousel" data-slide="prev">&lsaquo;</a>
  <a class="carousel-control right" href="#myCarousel" data-slide="next">&rsaquo;</a>
</div>
Run Code Online (Sandbox Code Playgroud)

你想要遍历旋转木马的每次出现,使用$(this)并抓住它的兄弟姐妹:

$('.carousel-inner').each(function() {

    if ($(this).children('div').length === 1) $(this).siblings('.carousel-control, .carousel-indicators').hide();

});
Run Code Online (Sandbox Code Playgroud)


Bum*_*2na 6

而不是$(this).find(...).hide();尝试$('.controls .carousel-control').hide();