#jquery #html #css
#jquery #HTML #css
Вопрос:
У меня возникли проблемы с созданием карусели с помощью jQuery: в настоящее время я добавляю и удаляю классы с помощью next () или prev (), но я хотел бы бесконечно перебирать все слайды при нажатии. Вот прекрасный пример того, что я хотел бы сделать: mfglabs.com.
Вот мой код:
<div class="container-slider">
<ul>
<li class="slide current">
<article>
// My content
</article>
</li>
<li class="slide">
<article>
// My content
</article>
</li>
</ul>
</div>
И вот мой jQuery :
$(document).ready(function() {
$(".next").click(function () {
$(".slide").removeClass("current");
$(".slide").next().addClass("current");
});
$(".prev").click(function () {
$(".slide").removeClass("current");
$(".slide").prev().addClass("current");
});
});
Спасибо!
Ответ №1:
Класс ‘ slide
‘ является универсальным для всех элементов. Вы можете применить обычные стили CSS, используя это, но не можете выбрать один конкретный элемент с помощью этого класса ‘ slide
‘. Вам нужно выбрать элемент по чему-то уникальному. в данном случае — его класс ‘ current
‘.
Это может быть хорошим подходом-
$(document).ready(function() {
$(".next").click(function () {
if($(".current").next().length){
// if Next element Exists
var nextElem = $(".current").next();
$(".current").removeClass("current");
nextElem.addClass("current");
}else{
// No Next item i.e. reached Last item
// Selecting first item to make it 'current'
var firstElem = $(".current").parent().children().first();
$(".current").removeClass("current");
firstElem..addClass("current");
}
});
$(".prev").click(function () {
// something similar
});
});
Комментарии:
1. Работает отлично, спасибо. На самом деле я заставил это работать с чем-то подобным: jsfiddle.net/zstNj но ваше решение на самом деле лучше! Спасибо.