Почему Twitter Bootstrap Carousel останавливается после первого переключения?
Я пытаюсь создать Карусель с помощью Twitter Bootstrap, но я получаю сообщение об ошибке ниже, ссылаясь на строку 388 файла bootstrap.js после первого переключения / скольжения Карусели.
Uncaught TypeError: Невозможно вызвать метод 'slice' из неопределенного
Я использую браузер Chromium в Ubuntu, версия 32.0.1700.102 Ubuntu 12.10.
Вот HTML-код, который я использую. Это в значительной степени копия с http://getbootstrap.com/javascript/
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Corousel Example</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Carousel START -->
<!-- Indicators -->
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<!-- Wrapper for sliders -->
<div class="carousel-inner">
<div class="item-active">
<img src="http://placehold.it/1200x480" alt="1">
<div class="carousel-caption">
<p>Caption 1</p>
</div>
</div>
<div class="item">
<img src="http://placehold.it/1200x480" alt="2">
<div class="carousel-caption">
<p>Caption 2</p>
</div>
</div>
<div class="item">
<img data-src="http://placehold.it/1200x480" alt="3">
<div class="carousel-caption">
<p>Caption 3</p>
</div>
</div>
</div>
<!-- Control -->
<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
<!-- Carousel END-->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.js"></script>
</body>
</html>
Вот JSFiddle для HTML выше.
Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю не так?
3 ответа
Так что это была довольно глупая ошибка. я использовал class="item-active"
вместо class="item active" in the div
под <div class="carousel-inner">
Вот JSFiddle для решения.
Код ниже показывает, где было сделано изменение.
<!-- Wrapper for sliders -->
<div class="carousel-inner">
<div class="item active">
<img src="http://placehold.it/1200x480" alt="1">
<div class="carousel-caption">
<p>Caption 1</p>
</div>
</div>
На самом деле есть два разных имени класса. Вы написали как один класс.
<div class="item-active">
Вы должны разделить их. Поскольку bootstrap js удаляет или добавляет класс "активный", когда он перемещает баннер.
<!-- Correct One -->
<div class="item active">
Вы также можете получить такую ошибку, если вы забудете class="item"
или опечатка