Jquery克隆问题 - 克隆仅显示一次

时间:2015-11-17 12:52:21

标签: javascript jquery

请看一下这段代码和评论:

// 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,但没有克隆?

1 个答案:

答案 0 :(得分:3)

.not('.clone').addClass('clone')

您第一次找到没有课程clone的元素,然后添加clone课程。

第二次没有没有班级clone的元素,因为您之前已经向他们添加了clone