JavaScript — слайдер не работает должным образом на последнем слайде

Слайдер не работает должным образом на последнем слайде

Скрипт скрывает активный li.current-test независимо от того, существует ли следующий элемент / prev. Когда вы достигаете последнего элемента, следующий элемент, естественно, не существует, но скрипт все равно скрывает текущий активный элемент. Вы должны сначала проверить, существует ли следующий элемент:

 $("a.testimonials-next").click(function() { // Switch to the next element, if it exists if ($("ul.testimonial-text li.test-current").next().length) { $("ul.testimonial-text li.test-current").fadeOut('slow', function() { $("ul.testimonial-text li.test-current").next().fadeIn('slow'); $("ul.testimonial-text li.test-current").next().addClass('test-current'); $("ul.testimonial-text li.test-current:first").removeClass('test-current'); } }); 

Теперь, как уже говорилось, ваш код мог бы значительно выиграть от назначения объектов jQuery переменным и цепочки методов, что сделало бы ваш код более читабельным и быстрым. Рассмотрим этот фрагмент в отношении приведенного выше:

 $("a.testimonials-next").click(function() { var current_element = $("ul.testimonial-text li.test-current"), next_element = current_element.next(); // Switch to the next element, if it exists if (next_element.length) { current_element.removeClass('test-current').fadeOut('slow', function() { next_element.addClass('test-current').fadeIn('slow'); }); }); 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector