2013-06-21 11 views
6

前にcloseコールバックが正常に動作しません。Magnificポップアップアクション私は私のカスタム関数をフックアップなど、</p> <p>を私は自分のソリューションでMagnificポップアップを実装していると私は彼が変更を保存せずにウィンドウを閉じるしたいユーザからの確認を得るために<a href="http://bootboxjs.com/">Bootbox</a>を使用しています近く

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

       } 
      } 
     }); 

これは単なる実例であり、実動コードではありません。それ以外の場合は、Bootboxダイアログが表示されないため(通常、結果として呼び出される引数として渡される戻り値をチェックする必要はありません)、if-else文があります。

問題は、閉じるボタンをクリックすると、画像(ポップアップの内容)が消えることです。閉会をキャンセルし、ポップアップを閉じる前に出る予定のイベントが必要なことを達成する機会がありたいと思います。

Magnific Popupでこれを実現することはできますか?

答えて

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

は、私は私の場合を休ま、ご返信いただきありがとうございます:) – Tobiasz

+0

こんにちは、私はあなたのmagnificポップアップに関する質問を掲載している、私はあなたがhttp://stackoverflow.com/questions/26272970/image-を助けることを願ってgallery-with-multiple-title-on-right-side – Learning

+0

これは、closeCall行の後にアクションを置くのにも適しています。私の場合はページコンテナをリフレッシュします – Kiwizoom

0

このコードは、現在開いているポップアップを上書き!閉じた後に同じポップアップを開くと、このコールバックはなくなります!

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

    // your code here 

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

};