Lizard-108
@Lizard-108
Ящерица

Как заставить работать события Owl Carousel'a?

Всем привет.

Задача - произвести некоторые действия после события changed в Owl-слайдере.

В документации написано, что это можно сделать таким способом
var owl = $('.owl-carousel');
owl.owlCarousel();
// Listen to owl events:
owl.on('changed.owl.carousel', function(event) {
    ...
})

И, естественно, этот способ не работает. Ведь зачем писать в документации примеры которые работают, верно?

Ну да ладно. Нашел еще вот такое решение. В той же документации.

$('.owl-carousel').owlCarousel({
    onDragged: callback
});
function callback(event) {
    ...
}

Результат - ничего не происходит.

Вот каким именно образом я это все сделано у меня.
var slider = $('.autopark-slider');
			slider.owlCarousel({
				pagination: false,
				navigation: true,
				slideSpeed: 444,
				paginationSpeed: 333,
				singleItem: true,
				touchDrag: true,
				autoPlay: false,
				afterAction: afterAction(),
				onDragged: callback,
				navigationText: false
			});

			function callback(event) {
				console.log('Этот консоль лог не срабатывает');
			}
			function afterAction() {
				console.log('А этот срабатывает, но только один раз при запуске слайдера');
			};


Ну и вот так я тоже пробовал делать, результат отсутствует.

var slider = $('.autopark-slider');
			slider.owlCarousel({
				pagination: false,
				navigation: true,
				slideSpeed: 444,
				paginationSpeed: 333,
				singleItem: true,
				touchDrag: true,
				autoPlay: false,
				afterAction: afterAction(),
				onDragged: callback,
				navigationText: false
			});

			function callback(event) {
				console.log('Этот консоль лог не срабатывает');
			}
			function afterAction() {
				console.log('А этот срабатывает, но только один раз при запуске слайдера');
			};

			slider.on('changed.owl.carousel', function(event) {
				callback();
			});


Что я делаю не так?
  • Вопрос задан
  • 3796 просмотров
Решения вопроса 1
Lizard-108
@Lizard-108 Автор вопроса
Ящерица
Короче сам разобрался, это делается через afterMove.
slider.owlCarousel({
				pagination: false,
				navigation: true,
				slideSpeed: 444,
				paginationSpeed: 333,
				singleItem: true,
				touchDrag: true,
				autoPlay: false,
				// afterInit: afterAction(),
				afterMove: callback,
				navigationText: false
			});


Авторы документации - м****ки
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
WaliterIrlandec
@WaliterIrlandec
Мужик, дело не в кривой документации.
Сам сейчас пол часа провозился, может кому понадобиться)
Если не работает метод 'changed.owl.carousel' и прочее, то с большой долей вероятности у вас установлен Owl Carousel v.1
А первые позиции нагуглевыемых док ведут на v.2+
Так что просто гуглите доки старой версии (или лучше обновите библиотеку)
Ответ написан
Комментировать
@pshj
Надо так делать:
var owl = $(".owl-block");
    owl.owlCarousel({
      items: 1,
      autoplay: true,
      dots: true,
      margin: 12,
      loop: true,
      onTranslated: changename,
    });
 function changename(event) {
     console.log(event);
 }


Работает на OwlCarousel2 - сам только что проверил)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы