Bootstrap 4 Carousel обнаруживает предыдущий слайд - PullRequest
0 голосов
/ 10 сентября 2018

Допустим, я на слайде 9 и перехожу на слайд 8 со следующей ссылкой:

<a class="carousel-control-btn" href="#Carousel"role="button" data-slide-to="8">

Сейчас я на слайде 8, есть ли способ определить предыдущий слайд, на котором я был? Я добавил id к каждому слайду следующим образом:

<div id="slide9" class="carousel-item">

и попробовал это, но, похоже, не работает:

$('#Carousel').on('slid.bs.carousel',function(f){
    if((f.relatedTarget.id == 'slide8') && (f.from.id == 'slide9')) {
        console.log("Came from slide 9");
    };
});

1 Ответ

0 голосов
/ 10 сентября 2018

У тебя почти было это. f.from это не объект, это индекс предыдущего элемента. Мы можем использовать эту информацию вместе с f.to, чтобы получить id обоих элементов и выполнить сравнение.

$(function() {

  $('#carouselExample').carousel();

  $('#carouselExample').on('slid.bs.carousel', function(f) {

    let fromId = $(this).find('.carousel-item').eq(f.from).attr('id');
    let toId = $(this).find('.carousel-item').eq(f.to).attr('id');

    if (fromId == "slide1" && toId == "slide2") {
      console.log("Came from slide 1");
    };

  });

});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<div id="carouselExample" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active" id="slide1">
      <img class="d-block w-100" src="https://via.placeholder.com/350x150" alt="First slide">
    </div>
    <div class="carousel-item" id="slide2">
      <img class="d-block w-100" src="https://via.placeholder.com/350x150" alt="Second slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src="https://via.placeholder.com/350x150" alt="Third slide">
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleControls" 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="#carouselExampleControls" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...