2016-07-19 4 views
0

mfp-ajaxであるものはポップアップボックスとして実行され、このポップアップボックスはMagnific-Popupのプラグインを使用します。Magnific-Popupクローズコールバックが実行されない

HTML:

<a href="/target" class="mfp-ajax multiselect-modal">View List</a> 

Javascriptを:

magnificSetting: { 
    type: 'ajax', 
    mainClass: 'mfp-fade', 
     ajax: { 
      settings: { 
       cache: false 
     } 
    } 
}, 
modals: function() { 
    var self = this; 

    $('a.mfp-ajax').each(function() { 
     var $this = $(this); 
     $this.magnificPopup(self.settings.magnificSetting); 
    }); 
} 

コードがしかし<a>は時々、動的にDOMで生成され、正常に動作し、私はMagnificのための別のスクリプトを作成する必要がありますポップアップコールバック。私は動的に生成されている要素でこれを添付しないか、私はこのコードを試してみましたが、これは実行されません

$(document).on('mfpClose', '.multiselect-modal', function() { 
    console.log('test'); 
}); 

:だから私がやったことは、私は以下のコードを参照して、ドキュメントにあるもの続いていますDOMを開き、ポップアップが開いてユーザーがそれを閉じると、上記のコードに移動します。私はここに何かを逃していますか

答えて

1

は残念ながらMagnificポップアップは内部でカスタムイベントを実装するためにtriggerHandler()ではなく、トリガーを()を使用して、その文書はので、これは現在のバージョン

$(document).on('mfpClose', '.multiselect-modal', function() { 
console.log('test'); 
}); 

では動作しないかもしれない「に聞く」にするために何のイベントはありません1つの修正がありますが、これは悪い習慣であるグローバルなイベントを作成する必要がありますので、あなたのケースでは近いコールバックを利用するようにアドバイスします。

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

//do your stuff here 

//this calls the original close to close popup 
//you may well comment it out which would totally disable the close button or execute conditional in if else 
$.magnificPopup.proto.close.call(); 
}; 

these are some properties 

//property 

magnificPopup.currItem // current item 
magnificPopup.index // current item index 

// Navigation 
magnificPopup.next(); // go to next item 
magnificPopup.prev(); // go to prev item 
magnificPopup.goTo(4); // go to slide #4 
+1

これはモーダルの用途に依存するかもしれない特定のコードですか?例えば、最初のモーダルクローズ関数は、DOM内のいくつかの要素を見つけてそれを初期化します。 2番目のモーダルクローズ関数は、DOM内のいくつかの要素を見つけ、それらの値を取得します。 – rpmansion

+0

あなたのポップアップに、そしてその条件付き実行コードに応じていくつかの一意のデータ属性を割り当てることができます。[this](http://stackoverflow.com/questions/16885863/magnific-popup-get-current-element-in-callback)ほとんどのjquery/domメソッドを実行できるように元のDOMオブジェクトを取得する方法 – Viney

+0

私はそれを動作させることができました、ありがとう:) – rpmansion

関連する問題