Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как сократить запись на JS - привести в нормальный вид (присвоение порядковых номеров)

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

Комментариев нет:

Отправить комментарий