¿Hay alguna manera de editar una instancia abierta de una ventana emergente magnífica ? En un estado, quiero que la ventana emergente se pueda cerrar, y en otro estado, quiero bloquear el cierre del usuario. Parece que estas opciones solo están disponibles para la inicialización:
$('.target-div').magnificPopup({ delegate: 'a', type: "inline", closeOnBgClick: true, showCloseBtn: true, gallery: { enabled: false }})Luego, mientras la ventana emergente está abierta, quiero bloquear el cierre accidental y quitar el botón X.
$('.target-div').magnificPopup({ delegate: 'a', type: "inline", closeOnBgClick: false, showCloseBtn: false, gallery: { enabled: false }})MagnificPopup almacena una sola instancia en jQuery var ( $.magnificPopup ), que controla el comportamiento de la ventana emergente en el DOM. En realidad, es muy fácil actualizar el comportamiento de los clics en segundo plano cambiando una sola configuración.
$.magnificPopup.instance.st.closeOnBgClick = false Internamente, MFP usa $.detach() y $.append() para controlar la presencia del botón de cierre. Para eliminarlo, podemos duplicar la forma en que funciona en _close() llamando:
$.magnificPopup.instance.currTemplate.closeBtn.detach() Volver a agregarlo es un poco más difícil porque la biblioteca usa una función privada llamada _getCloseBtn() para generar el elemento. Afortunadamente, podemos volver a agregarlo desde el mismo lugar donde lo eliminamos.
$.magnificPopup.instance.content.append($.magnificPopup.instance.currTemplate.closeBtn)Página de demostración utilizada para la prueba: https://dimsemenov.com/plugins/magnific-popup/