Swiper пагинация is not a function
У меня есть несколько слайдеров с пагинацией на странице и они работают как и задумывалось, но если перейти на любую другую страницу, то я получаю ошибку slider.el.querySelector is not a function Проблема именно в коде пагинации.
//Сами слайдеры
let slideArr = [];
const slider1 = new Swiper('#intro-slider', {
effect:'fade',
slidesPerView: 'auto',
fadeEffect: {
crossFade: true
},
navigation: {
nextEl: '.intro__arrows-next',
prevEl: '.intro__arrows-prev'
},
pagination: {
el: '.intro__swiper-pagination',
type: 'progressbar'
}
});
const slider2 = new Swiper('#reviews-slider', {
slidesPerView: 1.2,
spaceBetween: 30,
navigation: {
nextEl: '.reviews__arrows-next',
prevEl: '.reviews__arrows-prev'
},
pagination: {
el: '.reviews__swiper-pagination',
type: 'progressbar'
},
breakpoints: {
575: {
slidesPerView: 1
}
}
});
slideArr.push(slider1);
slideArr.push(slider2);
// Панинация, которая на других страницах выдает ошибку 'slider.el.querySelector is not a function'
function formatFraction (number) {
if (number < 10) {
number = '0' + number;
}
return number;
};
slideArr.forEach(slider => {
const total = slider.el.querySelector('.pagination-slider-total');
if(total) {
const curr = slider.el.querySelector('.pagination-slider-current');
total.innerHTML = formatFraction(slider.slides.length);
slider.on('slideChange', function() {
let currSlideNum = slider.realIndex + 1;
currSlideNum = formatFraction(currSlideNum);
curr.innerHTML = currSlideNum;
});
}
});
Ответы (1 шт):
Автор решения: Crus
→ Ссылка
Просто проверяйте наличие слайдера на странице перед тем как его инициализировать.
На jq:
if($('#test').length > 0){
инициализация
}
На js:
let element = document.getElementById("test");
if(typeof(element) != 'undefined' && element != null){
инициализация
}