I created some custom slider for my client and sometimes – i don’t know why – all the sliders only work in edit mode but not at the frontend.
When i move the widgets up or down and click save, the slider works again.
I load my widgets via elementor/frontend/init
. Do i miss something?
$(window).on('elementor/frontend/init', function () {
elementorFrontend.hooks.addAction(
'frontend/element_ready/wis-testimonial-slider.default',
WisSliderHandler
)
elementorFrontend.hooks.addAction(
'frontend/element_ready/wis-benefits-slider.default',
WisSliderHandler
)
elementorFrontend.hooks.addAction(
'frontend/element_ready/wis-news-slider.default',
WisSliderHandler
)
elementorFrontend.hooks.addAction(
'frontend/element_ready/wis-portfolio-slider.default',
WisSliderHandler
)
// elementorFrontend.hooks.addAction(
// 'frontend/element_ready/wis-widget-history-slider.default',
// WisSliderHandler
// )
})
let WisSliderHandler = function ($scope, $) {
console.log(window.wisDevMode ? 'WisSwiperHandler loaded' : '')
let $swiper = $scope.find('.wis-swiper')
if (!$swiper.length) {
return
}
let $options = $swiper.data('options')
let swiper = new Swiper(`.${$options.slider_name}`, {
modules: [Navigation], // Pagination
autoHeight: true,
setWrapperSize: true,
observer: true,
observeParents: true,
parallax: true,
loop: $options.loop,
pagination: {
el: '.swiper-pagination',
clickable: true,
type: 'bullets',
},
// slidesPerView: 1,
// spaceBetween: 20,
breakpoints: {
640: {
slidesPerView: $options.items_count_mobile, // 1.2,
spaceBetween: $options.space_between_mobile, // 1.2,
},
990: {
slidesPerView: $options.items_count_tablet, // 3.2,
spaceBetween: $options.space_between_tablet, // 1.2,
},
1024: {
slidesPerView: $options.items_count, // 4.2,
spaceBetween: $options.space_between, // 1.2,
},
},
navigation: {
nextEl: `.${$options.slider_name}-next`,
prevEl: `.${$options.slider_name}-prev`,
},
})