简体   繁体   English

为什么我的 Bootstrap 轮播只移动一次?

[英]Why does my Bootstrap carousel only move once?

I'm trying to implement a Bootstrap Carousel into my website however I am having an issue with it where it will only move once and will become unresponsive.我正在尝试在我的网站中实施 Bootstrap Carousel,但是我遇到了一个问题,它只会移动一次并且没有响应。 I've checked the ordering of the files and that doesn't seem to be an issue.我检查了文件的顺序,这似乎不是问题。 So this has left me stumped on what is causing my issue.所以这让我难倒是什么导致了我的问题。

HTML: HTML:

<div class="container bg-secondary" id="projectContainer">       
        <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
            <ol class="carousel-indicators">
              <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
              <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
              <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner">
              <div class="carousel-item active">
                <img class="d-block w-100" src="styles\media\gazeteerScreenShot.png" alt="First slide">
              </div>
              <div class="carousel-item">
                <img class="d-block w-100" src="styles\media\gazeteerInfoScreenShot.png" alt="Second slide">
              </div>
              <div class="carousel-item">
                <img class="d-block w-100" src="styles\media\gazeteerMarkerScreenShot.png" alt="Third slide">
              </div>
              <div class="carousel-item">
                <img class="d-block w-100" src="styles\media\gazeteerWebcamScreenShot.png" alt="Fourth slide">
              </div>
            </div>
            <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev" onclick="$('.carousel').carousel('prev')">
              <span class="carousel-control-prev-icon" aria-hidden="true"></span>
              <span class="sr-only">Previous</span>
            </a>
            <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next" onclick="$('.carousel').carousel('next')">
              <span class="carousel-control-next-icon" aria-hidden="true"></span>
              <span class="sr-only">Next</span>
            </a>
          </div>
    </div>

How my JS files are ordered:我的 JS 文件是如何排序的:

<!-- jQuery Required File -->
<script type="text/javascript" src="libs\jQuery\jquery-3.6.0.min.js"></script>
<!-- The Main Javascript file, this contains all our jQuery and PHP -->
<script type="text/javascript" src="libs/js/script.js"></script>  
<!-- Bootstrap JS -->
<script  type="text/javascript" src="bootstrap-5.1.3-dist\js\bootstrap.bundle.min.js"></script>

Javascript/jQuery: Javascript/jQuery:

$(document).ready(function() {
    $('.carousel').carousel({
        ride: "true",
        interval: 1000
    });  
});

 $(document).ready(function() { $('.carousel').carousel({ ride: "true", interval: 1000 }); });
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <div class="container bg-secondary" id="projectContainer"> <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li> <li data-target="#carouselExampleIndicators" data-slide-to="1"></li> <li data-target="#carouselExampleIndicators" data-slide-to="2"></li> </ol> <div class="carousel-inner"> <div class="carousel-item active"> <img class="d-block w-100" src="styles\\media\\gazeteerScreenShot.png" alt="First slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="styles\\media\\gazeteerInfoScreenShot.png" alt="Second slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="styles\\media\\gazeteerMarkerScreenShot.png" alt="Third slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="styles\\media\\gazeteerWebcamScreenShot.png" alt="Fourth slide"> </div> </div> <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev" onclick="$('.carousel').carousel('prev')"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next" onclick="$('.carousel').carousel('next')"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> </div> How my JS files are ordered: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>

The primary problem is that you were one indicator short.主要问题是你做空了一个指标。 The script was erroring when it tried to find the last one.脚本在尝试查找最后一个时出错。

 Uncaught TypeError: Cannot read properties of null (reading 'classList') at st._setActiveIndicatorElement (carousel.js:364) at st._slide (carousel.js:435) at st.next (carousel.js:142) at Function.carouselInterface (carousel.js:526) at HTMLDivElement.<anonymous> (carousel.js:535) at Function.each (jquery.min.js:2) at S.fn.init.each (jquery.min.js:2) at S.fn.init.jQueryInterface [as carousel] (carousel.js:534) at HTMLAnchorElement.onclick (js:37)

You seem to be missing -bs in your data attributes.您的数据属性中似乎缺少-bs See the docs .请参阅文档

Also, no Bootstrap library is going to call for onclick attributes in the markup.此外,没有 Bootstrap 库会在标记中调用 onclick 属性。 That's what the data attributes do.这就是数据属性的作用。

 $(document).ready(function() { $('.carousel').carousel({ ride: "true", interval: 1000 }); });
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <div class="container bg-secondary" id="projectContainer"> <div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel"> <ol class="carousel-indicators"> <li data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active"></li> <li data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1"></li> <li data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2"></li> <li data-bs-target="#carouselExampleIndicators" data-bs-slide-to="3"></li> </ol> <div class="carousel-inner"> <div class="carousel-item active"> <img class="d-block w-100" src="https://via.placeholder.com/1200x300" alt="First slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="https://via.placeholder.com/1200x300" alt="Second slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="https://via.placeholder.com/1200x300" alt="Third slide"> </div> <div class="carousel-item"> <img class="d-block w-100" src="https://via.placeholder.com/1200x300" alt="Fourth slide"> </div> </div> <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-bs-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="#carouselExampleIndicators" role="button" data-bs-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>

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

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