通过 jquery 在 Bootstrap 4 轮播中添加类“活动”,从 mongodb 加载数据时无法正常工作

Posted

技术标签:

【中文标题】通过 jquery 在 Bootstrap 4 轮播中添加类“活动”,从 mongodb 加载数据时无法正常工作【英文标题】:Adding class "active" on Boostrap 4 carousel via jquery, doesnt work correctly when loading data from mongodb 【发布时间】:2019-05-13 02:40:13 【问题描述】:

我有一个轮播,我想从我的 mongodb 数据库中加载轮播上的图片。因此,我只需要在第一项上设置活动类。到目前为止我所尝试的都不起作用。它添加了活动类,但随后轮播仅停留在第一项上。

下面是代码:

EJS:

    <!-- language: html -->
<div id="homePageCarousel" class="carousel slide carousel-fade" data-ride="carousel">

<% contests.forEach(function(contest) %>
  <!--Indicators-->
  <ol class="carousel-indicators">
    <li data-target="#homePageCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#homePageCarousel" data-slide-to="1"></li>
    <li data-target="#homePageCarousel" data-slide-to="2"></li>
  </ol>
  <!--/.Indicators-->
  <!--Slides-->
  <div class="carousel-inner mb-3" role="listbox">
    <div class="carousel-item">

      <div class="view">
        <img class="d-block carouselImage" src="https://mdbootstrap.com/img/Photos/Slides/img%20(68).jpg" >
        <div class="mask rgba-black-light"></div>
      </div>
      <div class="carousel-caption">
        <h3 class="h3-responsive"><%= contest.title %></h3>
        <a href="/categories/<%= contest.categoryName %>/<%= contest._id %>" class="btn btn-outline-success btn-sm card-button mt-3">Μάθε Περισσότερα</a>
      </div>
    </div>
  </div>
  <!--/.Slides-->
  <!--Controls-->
  <a class="carousel-control-prev" href="#homePageCarousel" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#homePageCarousel" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
  <!--/.Controls-->
<% ); %>
</div>

jQquery

$(document).ready(function () 
  $('#homePageCarousel').find('.carousel-item').first().addClass('active');
);

因此,这将仅显示第一项,而不显示其余项。我做错了什么?

谢谢

【问题讨论】:

【参考方案1】:

这样试试

$(document).ready(function () 
  $('#homePageCarousel').find('.carousel-item').first().addClass('active');
	var item=$('#homePageCarousel').find('.carousel-item').first().attr("class");
	alert(item);
);
.active
    background: red;
    color:#fff
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="homePageCarousel" class="carousel slide carousel-fade" data-ride="carousel">
  <!--Indicators-->
  <ol class="carousel-indicators">
    <li data-target="#homePageCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#homePageCarousel" data-slide-to="1"></li>
    <li data-target="#homePageCarousel" data-slide-to="2"></li>
  </ol>
  <!--/.Indicators-->
  <!--Slides-->
  <div class="carousel-inner mb-3" role="listbox">
    <div class="carousel-item" id="first">

      <div class="view">
        <img class="d-block carouselImage" src="https://mdbootstrap.com/img/Photos/Slides/img%20(68).jpg" >
        <div class="mask rgba-black-light"></div>
      </div>
      <div class="carousel-caption">
        <h3 class="h3-responsive"></h3>
        <a href="/categories/<%= contest.categoryName %>/<%= contest._id %>" class="btn btn-outline-success btn-sm card-button mt-3">Μάθε Περισσότερα</a>
      </div>
    </div>
  </div>
  <!--/.Slides-->
  <!--Controls-->
  <a class="carousel-control-prev" href="#homePageCarousel" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#homePageCarousel" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
  <!--/.Controls-->
</div>

【讨论】:

不确定这与我尝试的有什么不同。 您可能错过了提及jquery 或放错了位置...将jquery 放在所有其他脚本的顶部 我已经尝试过您的代码...现在查看结果。它工作正常。所以我认为您必须将 Jquery 脚本引用放在所有脚本的顶部

以上是关于通过 jquery 在 Bootstrap 4 轮播中添加类“活动”,从 mongodb 加载数据时无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 4 自定义轮播

如何在 Bootstrap 4 中定位轮播指示器

Bootstrap 4 - 创建动态轮播

Bootstrap 4 多项目轮播(单击循环所有新项目)[重复]

视频播放时停止轮播 - Bootstrap 4

如何用Bootstrap制作轮播图