Действие Magnific Popup перед закрытием
я реализовал Magnific Popup в своих решениях, и я использую Bootbox получить подтверждение от пользователя, что он хочет, чтобы закрыть окно без сохранения изменений, и т. д.
Я подключил свою пользовательскую функцию к закрыть обратный вызов, но он не работает, как ожидалось.
$('#divThumbnails').magnificPopup({
delegate: 'a',
type: 'inline',
midClick: true,
callbacks: {
close: function () {
var confirm = bootbox.confirm('Are you sure?', function(result) {
});
if (confirm)
return true;
else
return false;
}
}
});
Это просто быстрый пример, а не рабочий код. Оператор if-else существует, потому что в противном случае диалоговое окно Bootbox не отображается (обычно нет необходимости проверьте возвращаемое значение, как оно передается в качестве аргумента, который в этом примере называется result ).
проблема в том, что после нажатия кнопки закрытия мое изображение (которое является содержимым всплывающего окна) исчезает. Я хотел бы иметь возможность отменить операцию закрытия и добиться того, что мне нужно событие, которое будет срабатывать перед закрытием всплывающего окна.
можно ли этого достичь с помощью Magnific Popup ?
2 ответов
// this part overrides "close" method in MagnificPopup object
$.magnificPopup.instance.close = function () {
if (!confirm("Are you sure?")) {
return;
}
// "proto" variable holds MagnificPopup class prototype
// The above change that we did to instance is not applied to the prototype,
// which allows us to call parent method:
$.magnificPopup.proto.close.call(this);
};
этот код перезаписать только в настоящее время открыт всплывающее окно! Если вы откроете то же всплывающее окно после закрытия, этот обратный вызов исчезнет!
$.magnificPopup.instance.st.callbacks.close=function(){
// your code here
// this actually close popup
$.magnificPopup.proto.close.call(this);
};