2014-09-09 2 views
1

Есть ли способ связать обратный вызов события так, чтобы он вызывался для всех экземпляров Magnific Popup? На сайте я создаю несколько элементов, имеющих фиксированную позицию и «прыгаю», когда исчезает основная полоса прокрутки браузера. Я хочу установить обратный вызов для добавления отступов для этих элементов до того, как всплывающее окно будет открыто, и удалите заполнение, когда всплывающее окно будет закрыто. Я не хочу повторно использовать обратные вызовы каждый раз, когда я инициализирую Magnific Popup - я бы предпочел установить один набор обратных вызовов, который запускается каждый раз, когда Magnific открывает и закрывает всплывающее окно.Применить обратный вызов ко всем экземплярам Magnific Popup?

Моя первая мысль состояла в том, чтобы использовать делегирование событий и привязать довольно высоко в дереве документов. Я пытался связать событие mfpOpen и прослушать тег BODY, но это не похоже на пузырьки событий. Есть ли другое решение?

ответ

4

События отправляются только на целевой элемент или на документ (если целевой элемент отсутствует).

Но вы можете переопределить функцию открытия глобально с использованием прототипа, например .:

$.magnificPopup.instance.open = function(data) { 

    console.log('before open anything'); 

    $.magnificPopup.proto.open.call(this,data); 

    console.log('after open anything'); 
}; 

Вы можете сделать то же самое с close функции (она не имеет каких-либо аргументов).

+0

Могу ли я подключиться к событию, когда отображается следующий или предыдущий элемент галереи? –

Смежные вопросы