2017-06-15 102 views
0

私たちは、Magnificライブラリを使用して、私たちのサイトにPopUpsを表示しています。これを持つものはすべて、1つのことを除いてうまくいっています。盛大PopUpが動的に追加された要素で動作しない

要素を動的に追加すると、動的に追加された要素に対してポップアップが機能しません。動的に追加された要素のクリックイベントをバインドしてポップアップを表示する方法を教えてください。ここに私のコードは以下の通りです:

`<a id="del-vis-archive-new-{{$request->id}}" href="#delete-visitor-archive" data-id="{{$request->id}}" class="popup-form-delete-visitor-archive" style="color:red;"><i style="color:red; text-align: right;" class="hi hi-trash"></i></a> 

var PopupDelVisArchive = function() { 
$('.popup-form-delete-visitor-archive').magnificPopup({ 
    type: 'inline', 
    preloader: false, 
    focus: '#name', 
    callbacks: { 
     open: function() { 
      var dataId = $(this.st.el).attr('data-id'); 
      $("#btn").attr('data-id', dataId); 
     } 
    } 
}); 

}

$(document).on('init.dt, draw.dt', function (e, settings) { 
    PopupDelVisArchiv(); 
});` 

クラスは、ポップアップ を表示するための責任があるが、それは動的に追加された要素のために動作しません。

つまり、クリックイベントは、新しく追加された要素のDOMに登録されていません。

答えて

0

新しい要素がdomにロードされた後で、新しい要素にポップアップをバインドする必要があります。これは、新しい要素ごとにPopupDelVisArchiv();を呼び出すことを意味します。

+0

メソッドを呼び出すと、これが表示されます。 'plugins.js:359未知の型エラー:b.findはm.fn.initの関数 ではありません。 o.getInline(plugins.js:359)の(plugins.js:359) at Function.each(jquery-1.11.2.min.js:2) o._parseMarkup(plugins.js:359) o.updateItemHTMLで (plugins.js:359) オープン(plugins.js:359)で o._openClick(plugins.js:359)で HTMLDivElement.c(plugins.js:359)で HTMLDivElementました。 HTMLDivElement.r.handle(jquery-1.11.2.min.js:3)でにディスパッチ(jquery-1.11.2.min.js:3) を入力してください。 – MKJ

+0

既にポップアップしている要素に再バインドしている可能性がありますすでに縛られています。新しい要素にのみ個別にバインドしていることを確認してください。 – btl

関連する問題