2013-06-21 19 views
6

ho implementato Magnific Popup nelle mie soluzioni e sto usando Bootbox di ottenere la conferma da parte dell'utente che vuole chiudere la finestra senza salvare le modifiche, eccMagnific azione Popup prima della chiusura

ho collegato la mia funzione personalizzata a close callback ma non funziona come previsto.

$('#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; 

       } 
      } 
     }); 

Questo è solo un esempio veloce, non un codice di produzione. L'istruzione if-else è presente perché altrimenti la finestra di dialogo Bootbox non viene visualizzata (normalmente non è necessario controllare il valore restituito poiché viene passato come argomento che in questo esempio viene chiamato risultato).

Il problema è che dopo aver fatto clic sul pulsante di chiusura la mia immagine (che è il contenuto del popup) scompare. Mi piacerebbe avere l'opportunità di annullare l'operazione di chiusura e per ottenere ciò ho bisogno di un evento che sparerà PRIMA di chiudere il popup.

È possibile ottenere questo risultato con Magnific Popup?

risposta

20
// 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); 
    }; 

http://codepen.io/dimsemenov/pen/edCgo

+0

Grazie per la risposta, ho il mio caso :) – Tobiasz

+0

Ciao, ho postato una domanda per quanto riguarda il Popup magnifica, spero che possiate aiutare http://stackoverflow.com/questions/26272970/image- gallery-with-multiple-title-on-right-side – Learning

+0

Questo è anche un bene per mettere le azioni dopo la linea close.call, nel mio caso l'aggiornamento del contenitore della pagina – Kiwizoom

0

Questo codice di sovrascrittura solo attualmente aperte popup! Se apri lo stesso popup dopo la chiusura, questa callback sarà sparita!

$.magnificPopup.instance.st.callbacks.close=function(){ 

    // your code here 

    // this actually close popup 
    $.magnificPopup.proto.close.call(this); 

}; 
Problemi correlati