Ruby on Rails - 引导旋转木马按钮不起作用

Ruby on Rails - Bootstrap Carousel Buttons not Working

本文关键字:旋转木马 按钮 不起作用 on Rails Ruby      更新时间:2023-09-26

我正在尝试创建一个html5图像的轮播,这些图像是通过Ruby on Rails中的回形针宝石获取的。 我已经设法创建了一个成功的轮播,其中我使用了库存图像的静态#(5),但是当我尝试遍历图像时,格式保持不变并且间隔有效,但"上一页"和"下一个"按钮不起作用。

考虑到我的静态轮播工作,我很确定我的 jquery 链接都设置正确,但我无法弄清楚迭代链接。 我在下面都包括了。 任何帮助将不胜感激,谢谢!

仅供参考 - 我已经研究了一堆这样的帖子,似乎没有一个能回答我的特定问题 - 引导轮播过渡和上一个/下一个按钮不起作用

按钮不起作用的代码:

          <div id="mycarousel" class="carousel slide" data-ride="carousel">
            <!-- Indicators -->
            <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>
              <li data-target="#mycarousel" data-slide-to="3"></li>
              <li data-target="#mycarousel" data-slide-to="4"></li>
            </ol>
            <!-- Wrapper for slides -->
            <div class="carousel-inner" role="listbox">
              <div class="active item">
                 <%= image_tag("Chess.png", :alt => "chess") %>
              </div>
              <% @outings.each do |outing| %>
                  <div class="item">
                    <%= image_tag outing.image.url(:medium) %>
                  </div>
              <% end %>
            </div>
            <!-- Controls -->
              <a class="left carousel-control" href="#mycarousel" role="button" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
              </a>
              <a class="right carousel-control" href="#mycarousel" role="button" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
              </a>
          </div>

正常工作的代码:

        <div id="mycarousel" class="carousel slide" data-ride="carousel">
          <!-- Indicators -->
          <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>
            <li data-target="#mycarousel" data-slide-to="3"></li>
            <li data-target="#mycarousel" data-slide-to="4"></li>
          </ol>
          <!-- Wrapper for slides -->
          <div class="carousel-inner" role="listbox">
            <div class="item active">
              <%= image_tag("Chess.png", :alt => "chess") %>
              <div class="carousel-caption">
                <h3>First Image</h3>
              </div>
            </div>
            <div class="item">
              <%= image_tag("cocktail.png", :alt => "cocktail") %>
              <div class="carousel-caption">
                <h3>Second Image</h3>
              </div>
            </div>
            <div class="item">
              <%= image_tag("concert.png", :alt => "concert") %>
              <div class="carousel-caption">
                <h3>Third Image</h3>
              </div>
            </div>
            <div class="item">
              <%= image_tag("football.png", :alt => "football") %>
              <div class="carousel-caption">
                <h3>Fourth Image</h3>
              </div>
            </div>
            <div class="item">
              <%= image_tag("Coffee.png", :alt => "coffee") %>
              <div class="carousel-caption">
                <h3>Fifth Image</h3>
              </div>
            </div>
          </div>
          <!-- Controls -->
          <a class="left carousel-control" href="#mycarousel" role="button" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
          </a>
          <a class="right carousel-control" href="#mycarousel" role="button" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
          </a>
        </div>

咖啡脚本

$('.left').click ->
  $('#myCarousel').carousel 'prev'
  return
$('.right').click ->
 $('#myCarousel').carousel 'next'
 return
$('.carousel').carousel
  interval: 60
  pause: 'hover'
  wrap: true

注意在你的循环中,你正在调用类项(不工作的)

<% @outings.each do |outing| %>
  <div class="item">
    <%= image_tag outing.image.url(:medium) %>
  </div>
<% end %>

然后在工作代码中注意

<div class="item active">
  <%= image_tag("Chess.png", :alt => "chess") %>
  <div class="carousel-caption">
    <h3>First Image</h3>
  </div>
</div>
第一个具有"活动"类

,引导轮播要求至少有一个类"项目"是"活动"的。

因此,在您的代码中尝试在第一个循环中添加类"active"。

<% @outings.each_with_index do |outing, index| %>
  <div class="item <%= index == 0 ? 'active' : '' %>">
    <%= image_tag outing.image.url(:medium) %>
  </div>
<% end %>

坚持这个,终于想通了!因为我有多个轮播,所以我需要多个轮播 ID 每个 stackoverflow 问答:一个页面上有多个引导轮播,只能控制一个