【问题标题】:Multiple Bootstrap Carousels without IDs?多个没有 ID 的引导轮播?
【发布时间】:2016-06-15 03:18:48
【问题描述】:

有没有办法让一个页面上没有 ID 的多个通用引导轮播分别工作?目前,两个轮播都在工作,但是当我单击上一个/下一个时,它会更改两个轮播。我认为这将针对点击的轮播?

谢谢!

HTML

<div class="carousel slide" data-ride="carousel" data-wlp-component="wlp.carousel">
        <!-- Indicators -->
        <ol class="carousel-indicators">
          <li data-target=".carousel" data-slide-to="0" class="active"></li>
          <li data-target=".carousel" data-slide-to="1"></li>
          <li data-target=".carousel" data-slide-to="2"></li>
          <li data-target=".carousel" data-slide-to="3"></li>
        </ol>

        <!-- Wrapper for slides -->
        <div class="carousel-inner" role="listbox">
          <div class="item active">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=960%C3%97370&w=960&h=370" alt="Image1">
          </div>

          <div class="item">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=960%C3%97370&w=960&h=370" alt="Image2">
          </div>

          <div class="item">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=960%C3%97370&w=960&h=370" alt="Image3">
          </div>

          <div class="item">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=960%C3%97370&w=960&h=370" alt="Image4">
          </div>
        </div>

        <!-- Left and right controls -->
        <a class="left carousel-control" href=".carousel" 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=".carousel" role="button" data-slide="next">
          <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
          <span class="sr-only">Next</span>
        </a>
      </div>
      <!-- Second Carousel -->
      <div class="carousel slide" data-ride="carousel" data-wlp-component="wlp.carousel">
        <!-- Indicators -->
        <ol class="carousel-indicators">
          <li data-target=".carousel" data-slide-to="0" class="active"></li>
          <li data-target=".carousel" data-slide-to="1"></li>
          <li data-target=".carousel" data-slide-to="2"></li>
          <li data-target=".carousel" data-slide-to="3"></li>
        </ol>

        <!-- Wrapper for slides -->
        <div class="carousel-inner" role="listbox">
          <div class="item active">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=960%C3%97370&w=960&h=370" alt="Image1">
          </div>

          <div class="item">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=960%C3%97370&w=960&h=370" alt="Image2">
          </div>

          <div class="item">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=960%C3%97370&w=960&h=370" alt="Image3">
          </div>

          <div class="item">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=960%C3%97370&w=960&h=370" alt="Image4">
          </div>
        </div>

        <!-- Left and right controls -->
        <a class="left carousel-control" href=".carousel" 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=".carousel" role="button" data-slide="next">
          <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
          <span class="sr-only">Next</span>
        </a>
      </div>

JS

        $('.carousel').each(function(){ 
            $(this).carousel({ 
                interval: 3000
             }); 
            $(this).on('click', '.left', function(){
                $(this).carousel('prev');
            });
            $(this).on('click', '.right', function(){
                $(this).carousel('next');
            });
        });

【问题讨论】:

  • Bootstrap 将默认将其 onclick 侦听器附加到 .left.right(您可以从检查员/开发人员的控制台中看到它们),我相信这就是您的 JS 代码没有的原因按预期工作。您可以尝试使用 jQuery 的 .off() 方法删除默认处理程序。
  • @Kairat 我明白你在说什么。我很好奇是否有办法找到特定的父 .carousel

标签: javascript jquery twitter-bootstrap bootstrap-carousel


【解决方案1】:

据我了解,您需要选择不同的选项来绑定 2 个不同轮播的事件。所以你需要使用不同的类或不同的 ID 或任何 2 个不同的选择。

【讨论】:

  • 嗯,我正在尝试使其动态化,这样我就不必在 ID 或单独的类中编码。
  • 因此您可以动态创建单独的 ID 或类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
  • 2017-04-08
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
相关资源
最近更新 更多