#jquery
Подскажите, пожалуйста, способ привести код 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 или типа того.
Ответы
Ответ 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) нужно будет указать предка, положение которого в пределах своего предка может дать номер слайда.
Комментариев нет:
Отправить комментарий