Подскажите, пожалуйста, способ привести код jquery в нормальный вид:
$('.go0').click(function(){
carousel.trigger('owl.goTo', 0)
});
$('.go1').click(function(){
carousel.trigger('owl.goTo', 1)
});
$('.go2').click(function(){
carousel.trigger('owl.goTo', 2)
});
$('.go3').click(function(){
carousel.trigger('owl.goTo', 3)
});
$('.go4').click(function(){
carousel.trigger('owl.goTo', 4)
});
$('.go5').click(function(){
carousel.trigger('owl.goTo', 5)
});
$('.go6').click(function(){
carousel.trigger('owl.goTo', 6)
});
$('.go7').click(function(){
carousel.trigger('owl.goTo', 7)
});
$('.go8').click(function(){
carousel.trigger('owl.goTo', 8)
});
Элементов (.go0, .go1 и т.д.) может быть бесконечно много, и писать их в таком виде не нормально.
К сожалению, не нашел как записать это в виде с n+1 или типа того.
Ответ
Решение "не включая мозг":
for (var ix = 0; ix < 9; ix += 1) {
$('.go' + ix).click(function (ix) {
return function() {
carousel.trigger('owl.goTo', ix);
};
}(ix));
}
Теперь нормальное решение:
Обычно у элементов переключения карусели общий предок и сами элементы идут в нем подряд. Поэтому достаточно найти номер потомка у предка, что в jQuery тривиальная задача. Предположим что у всех переключателей установлен класс go
$('.go').click(function() {
carousel.trigger('owl.goTo', $(this).index());
});
Если элементы .go находятся еще каждый в своей обертке, то вместо $(this) нужно будет указать предка, положение которого в пределах своего предка может дать номер слайда.
Комментариев нет:
Отправить комментарий