Javascript 放大弹出窗口不使用动态添加的元素
我们正在使用放大库来显示我们网站上的弹出窗口。除了一件事,一切都进展顺利 当我们动态添加一个元素时,popup对动态添加的元素不起作用。您能否帮助我如何绑定动态添加元素的单击事件以显示弹出窗口?下面是我的代码:Javascript 放大弹出窗口不使用动态添加的元素,javascript,laravel-5,magnific-popup,magnification-api,Javascript,Laravel 5,Magnific Popup,Magnification Api,我们正在使用放大库来显示我们网站上的弹出窗口。除了一件事,一切都进展顺利 当我们动态添加一个元素时,popup对动态添加的元素不起作用。您能否帮助我如何绑定动态添加元素的单击事件以显示弹出窗口?下面是我的代码: `<a id="del-vis-archive-new-{{$request->id}}" href="#delete-visitor-archive" data-id="{{$request->id}}" class="popup-form-delete-visito
`<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);
}
}
});
该类负责显示弹出窗口
但它不适用于动态添加的元素
换句话说,新添加的元素没有在DOM中注册click事件。在DOM中加载每个新元素后,需要将弹出窗口绑定到每个新元素。这意味着调用
PopupDelVisArchiv()。如果调用方法:plugins.js:359 Uncaught TypeError:b.find不是m.fn.init上的函数,就会得到这个结果。(plugins.js:359)在Function.each(jquery-1.11.2.min.js:2)在o.\u parseMarkup(plugins.js:359)在o.getInline(plugins.js:359)在o.updateItemHTML(plugins.js:359)在o.\u openClick(plugins.js:359)在htmldevelment.c(plugins.js:359)在htmldevelment.dispatch(jquery-1.11.2.min.js:3)在在htmldevelment.r.handle(jquery-1.11.2.min.js:3)
I可能是因为您正在重新绑定到弹出窗口已经绑定到的元素。确保仅单独绑定到新元素。
$(document).on( 'init.dt, draw.dt', function ( e, settings ) {
PopupDelVisArchiv();
});`