нужно выбрать конкретную усадьбу из Jquery элементов на основе там индекс с использованием :eq()
(или что-то еще, если у вас есть лучшее решение)выбрать диапазон РОМ элементов на основе индекса
мой HTML структура выглядит следующий образом:
<ul>
<li>slide0</li>
<li>slide1</li>
<li>slide2</li>
<li>slide3</li>
<li>slide4</li>
</ul>
Когда пользователь наводит курсор скользит по Slide2 мне нужно выбрать li:eq(0), li:eq(1)
и li:eq(3), li:eq(4)
раздельно, потому что они имеют различную анимацию.
Это мое решение, но это чувствует себя немного грязный ...
var $slides, theOthers, slidesTotal;
$slides = $('ul > li');
slidesTotal = $slides.length;
theOthers = function(slideIndex ,slidesTotal){
var before = [], after = [], i=0;
while (i<=slideIndex - 1){
before[i] = ":eq(" + i + ")"
i++
};
while (i <= slidesTotal) {
after[i] = ":eq(" + i + ")"
i++
};
return [ before.join(",") , after.join(",") ]
}
$slides.mouseenter(function(){
var groups, slideIndex, $that = $(this);
slideIndex = $that.index();
groups = theOthers(slideIndex, slidesTotal);
$slides.filter(groups[0]).dosomething();
$slides.filter(groups[1]).dosomethingelse()
})
есть более простой способ сделать это с помощью JQuery?
К сожалению, я не понял ваш вопрос. Удалил мой ответ :-) –
не проблема, это была интересная комбинация селекторов: P, но я уже использовал '$ slides.not ($ (this))' и т. Д. ... и затем выяснил, что мне нужно анимировать элементы до и после seperatly .. – meo