2017-06-15 38 views
0

我們正在使用Magnific庫在我們的網站中顯示PopUps。除了一件事以外,所有這一切都進展順利。Magnific PopUp不能使用動態添加的元素

當我們動態地添加一個元素時,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

在彈出窗口中加載完成後,需要將彈出窗口綁定到每個新元素。這意味着一旦準備好就爲每個新元素調用PopupDelVisArchiv();

+0

我收到這個,如果我打電話的方法: 'plugins.js:359 Uncaught TypeError:b.find不是函數 在m.fn.init。在o.getInline(plugins.js:359)處的o._parseMarkup(plugins.js:359) 處的Function.each(jquery-1.11.2.min.js:2) ((plugins.js:359) ) 在o.updateItemHTML(plugins.js:359) 在開放(plugins.js:359) 在o._openClick(plugins.js:359) 在HTMLDivElement.c(plugins.js:359) 在HTMLDivElement。派遣(jquery-1.11.2.min.js:3) 在HTMLDivElement.r.handle(jquery-1.11.2.min.js:3)' – MKJ

+0

我可能是因爲你正在重新綁定到它已經彈出的元素已經綁定了。確保你只能單獨綁定新元素。 – btl