简体   繁体   English

Bootstrap 3:隐藏第一个和最后一个项目的轮播控件无效

[英]Bootstrap 3: Hidding carousel controls on first and last items not working

I did get the JS code from: netgloo 我确实从以下网站获得了JS代码: netgloo

JS: JS:

var checkitem = function() {
    var $this;
    $this = $("#");
    if ($("#diapos .carousel-inner .item:first").hasClass("active")) {
      $this.children(".left").hide();
      $this.children(".right").show();
    } else if ($("#diapos .carousel-inner .item:last").hasClass("active")) {
      $this.children(".right").hide();
      $this.children(".left").show();
    } else {
      $this.children(".carousel-control").show();
    }
  };

  checkitem();

  $("#diapos").on("slid.bs.carousel", "", checkitem);

HTML: HTML:

  <div id="diapos" class="carousel paper2 slide" data-ride="carousel">
    <!-- diapos -->
    <div class="carousel-inner" role="listbox">
      <div class="overlay"></div>
      <div class="item active" id="first">
        <img src="img/01.jpg" alt="...">
      </div>
      <div class="item" id="second">
        <img src="img/02.jpg" alt="...">
      </div>
      <div class="item" id="last">
        <img src="img/03.jpg" alt="...">
       </div>
    </div>
</div>



    <a class="left carousel-control" href="#diapos" role="button" data-slide="prev"><span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span><span class="sr-only">Previous</span></a>
    <a class="right carousel-control" href="#diapos" role="button" data-slide="next"><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span><span class="sr-only">Next</span></a>

The code is not hidding the respective controls. 该代码没有隐藏相应的控件。

There are no other carousels in the document. 该文档中没有其他轮播。

By the way, what's the function of this piece of HTML?: 顺便说一下,这段HTML的功能是什么?:

<div class="overlay"></div>

The id of the carousel div is "diapos". 轮播div的ID为“ diapos”。 So this on the third line should be assigned to that, as 'left' and 'right' are its immediate children : 因此,应该在第三行将其分配给它,因为“ left”和“ right”是其直接子代:

  var checkitem = function() {
  var $this;
  $this = $("#diapos");  // this line needs to be changed
  if ($("#diapos .carousel-inner .item:first").hasClass("active")) {
    $this.children(".left").hide();
     //continue as before from here

Also, you probably forgot to close the 'diapos' div! 另外,您可能忘记了关闭“ diapos” div!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM