请看一下这段代码和评论:
// Some div with data, which need to be cloned in another place.
var currentMonth = $('.month');
currentMonth.on('click',function(e) {
// Select items to clone
var clons = $(this).parent().siblings().find('.year-dropdown').not('.clone').addClass('clone');
// Clone them, and append to #all-events
clons.clone().appendTo('#all-events');
// Show this div, as it's hidden item, with posiition absolute.
$('#all-events').show();
// #all-events has span instide - X with class .closed sign to close this overlay.
$('.closed').on('click',function() {
// Empty #all-events elements inside.
$('#all-events').hide().html('<span class="closed"></span>');
});
});
现在,问题是:为什么在第一次点击currentMonth后,一切正常 - 项目被克隆,#all-events显示为克隆覆盖,但点击.closed(X)隐藏#all-events,和现在,当我再次点击currentMonts时,会显示覆盖X,但没有克隆?
答案 0 :(得分:3)
.not('.clone').addClass('clone')
您第一次找到没有课程clone
的元素,然后添加clone
课程。
第二次没有没有班级clone
的元素,因为您之前已经向他们添加了clone
。