我制作了一个模态插件,但由于某种原因,我生成的其中一个 div 没有获得我附加到它的点击事件侦听器。
<a class="close" id="js-close-modal"></a>
就是我所指的。我正在使用 jQuery,但这似乎没有帮助。
var $caller = $(this);
var $modal = $('.modal');
$caller.on('click', $caller, function(e) {
e.stopPropagation();
$('#js-close-modal').on('click', $('#js-close-modal'), function(e) {
$('.modal_outer').remove();
$('#modal_page_cover').remove();
});
var modal_outer = $('<div />');
modal_outer.addClass('modal_outer');
modal_outer.css({
top: ($(window).scrollTop()) + 'px'
});
var $div = $('<div />');
var modal = $('<div />');
modal.addClass('modal');
var modal_inner = $('<div />');
modal_inner.addClass('modal_inner');
modal.append(modal_inner);
modal_outer.append(modal);
var body = $('body');
body.append(modal_outer).hide().fadeIn(100);
modal_inner.text('yo');
var close = $('<a />');
close.addClass('close').attr('id', 'js-close-modal');
close.insertBefore(modal_inner);
var page_cover = $('<div />');
page_cover.attr('id', 'modal_page_cover');
body.prepend(page_cover);
});
演示:JSFiddle
知道为什么吗?