#jquery #html #twitter-bootstrap-3
#jquery #HTML #twitter-bootstrap-3
Вопрос:
Я использую bootstrap3 и пытаюсь отобразить галерею изображений с помощью Bootstrap Modal carousel. Я нашел приведенный ниже код из github. Все работает нормально, кроме ссылки на предыдущий слайд. Это не заставляет ползунок перемещаться назад к предыдущему слайду / изображению. Может кто-нибудь, пожалуйста, помочь мне с проблемой.
Вот HTML:
<div class="container">
<div>
<div class="row thumb-gallery">
<div class="col-lg-3 col-sm-4 col-xs-6"><a title="Deer Yard 1" href="#">
<img class="thumbnail img-responsive" src="images/Deer-Yards-1.jpg"></a>
</div>
<div class="col-lg-3 col-sm-4 col-xs-6"><a title="Deer Yard 2" href="#">
<img class="thumbnail img-responsive" src="images/Deer-Yards-2.jpg"></a>
</div>
<div class="col-lg-3 col-sm-4 col-xs-6"><a title="Deer Yard 3" href="#">
<img class="thumbnail img-responsive" src="images/Deer-Yards-3.jpg"></a>
</div>
</div>
</div>
</div>
<div class="modal" id="myModal" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button class="close" type="button" data-dismiss="modal">×</button>
<h3 class="modal-title"></h3>
</div>
<div class="modal-body">
<div id="modalCarousel" class="carousel">
<div class="carousel-inner"></div>
<a class="carousel-control left" href="#modaCarousel" data-slide="prev"><i class="glyphicon glyphicon-chevron-left"></i></a>
<a class="carousel-control right" href="#modalCarousel" data-slide="next"><i class="glyphicon glyphicon-chevron-right"></i></a>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!--modal content-->
</div> <!--modal dialog-->
</div>
Я использую код jquery:
/* copy loaded thumbnails into carousel */
$('.row .thumbnail').on('load', function() {
}).each(function(i) {
if(this.complete) {
var item = $('<div class="item"></div>');
var itemDiv = $(this).parents('div');
var title = $(this).parent('a').attr("title");
item.attr("title",title);
$(itemDiv.html()).appendTo(item);
item.appendTo('.carousel-inner');
if (i==0){ // set first item active
item.addClass('active');
}
}
});
/* activate the carousel */
$('#modalCarousel').carousel({interval:false});
/* change modal title when slide changes */
$('#modalCarousel').on('slid.bs.carousel', function () {
$('.modal-title').html($(this).find('.active').attr("title"));
})
/* when clicking a thumbnail */
$('.row .thumbnail').click(function(){
var idx = $(this).parents('div').index();
var id = parseInt(idx);
$('#myModal').modal('show'); // show the modal
$('#modalCarousel').carousel(id); // slide carousel to selected
});
Ответ №1:
У вас очень маленькая опечатка в вашем коде.
Этот a
тег в вашем HTML (без значка внутри):
<a class="carousel-control left" href="#modaCarousel" data-slide="prev"></a>
… должно быть:
<a class="carousel-control left" href="#modalCarousel" data-slide="prev"></a>
JSFiddle, чтобы доказать, что это работает.
При отладке обязательно начинайте с исходного кода (в данном случае с самой кнопки) и работайте в обратном направлении, чтобы убедиться, что каждая строка кода написана так, как ожидалось, и функционирует так, как ожидалось.
Комментарии:
1. я действительно ценю, что вы уделили некоторое время моему вопросу. я потратил целый день, возясь с кодом. теперь он работает именно так, как я хочу, чтобы это было 🙂
Ответ №2:
В приведенном выше коде href должен быть href=»#modalCarousel» вместо href=»#modaCarousel»
Комментарии:
1. Это плохая копия ответа, который был принят 8 месяцев назад.