makc9I
@makc9I
фрилансер, web разработчик

Что не так с объявлением модального окна?

У меня несколько модальных окон. Все они открываются по клику на кнопку класса .button
Использую библиотеки magnific popup для модалок и owlcarousel для слайдера
Так выглядит js код:
// popup windows
$('.button').magnificPopup({
		type: 'inline',
		preloader: false,
		callbacks: {
			open: function() {
				// Will fire when this exact popup is opened
				// this - is Magnific Popup object
				$(".popup-block .slider").owlCarousel({
					items: 1,
					nav : false,
					navText : "",
					loop : true,
					dots: true,
					autoplay : false,
					autoplayHoverPause : true,
					fluidSpeed : 600,
					autoplaySpeed : 600,
					navSpeed : 600,
					dotsSpeed : 600,
					dragEndSpeed : 600
				});
			},
			close: function() {
				// Will fire when popup is closed
			}
			// e.t.c.
		}

});


Есть секция спа-бассейны, террасная доска, сауны и хаммамы. Каждый блок при клике пораждает модалку.
В текущем исполнении слайдер нормально инициализируется только в первом из открытых модальных окон. В остальных же окнах слайдер поедет. Я почти уверен, что если написать 4 блока одинакового кода, заменив .button на уникальные айдишники для каждой из кнопок, то проблема исчезнет, но я хочу понять, почему происходит такой глюк при моей записи и можно ли его исправить, не городя избыточный код?

sandbox.maximshadrin.ru/aquanomika
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
Bowen
@Bowen
Японский бог
  1. Вам надо получить текущий элемент.
  2. Для этого, прочитайте доки, там скорее всего должно быть написано как это можно сделать.
  3. Далее вы должны обернуть его в обертку jQuery.
  4. У вас должно получиться что то типа этого:
    $(currentItem).prev(".popup-block .slider").owlCarousel({

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы