Я пытаюсь выбрать .next()
div для работы внутри карусели.Выбор следующего div jquery
Тем не менее, кажется, возвращаются все .children()
, а не .next()
HTML
<nav class="slider-navigation">
<div class="left-arrow"></div>
<div class="right-arrow"></div>
</nav>
<div class="slides">
<div class="slide" id="slide1"></div>
<div class="slide" id="slide2"></div>
<div class="slide" id="slide3"></div>
<div class="slide" id="slide4"></div>
</div>
Jquery
$(".left-arrow").click(function() {
var currentSlide = $(this).parent().siblings(".slides").children().next();
// Do something with currentSlide.
});
Когда я console.log(currentSlide)
в браузере он возвращает все 4 детей .slides
.
То же самое происходит для$(".right-arrow").click()
Я просто не хочу, чтобы добавить повторяющийся код
Любой помощь?
Благодаря
нам нужно будет увидеть еще какой-нибудь код, возможно, даже скрипку, потому что непонятно, чего вы пытаетесь достичь. Как вы определяете, что такое слайд? Возможно, что-то вроде '$ ('. Slide: visible'). Next()' может работать, хотя я бы, вероятно, сохранил какой-то указатель, чтобы определить, какой слайд активен. – Pevara
[$ .fn.next] (http://api.jquery.com/next/) находит следующий элемент для каждого элемента в коллекции, которую вы вызываете. Вы получаете все дочерние элементы div, а затем вызываете '.next()' на нем. Это вернет все элементы, найденные '.children()', за исключением первого. Вам нужно вызвать '.next()' для текущего элемента, а не для всей коллекции. Без определения «текущего» элемента невозможно определить «следующий». – Waxen
@PeterVR Я пытаюсь заставить работать карусель. В настоящее время я делаю это, потянув весь ползунок влево или вправо в соответствии со стрелкой, на которую была нажата кнопка. Я не хочу делать это таким образом, поэтому я пытаюсь найти решение, чтобы заставить его работать, добавив более высокий индекс z к следующему .slide, чем последний. –