删除原始文件后,在克隆元素中使用事件处理程序

时间:2017-04-08 17:22:09

标签: javascript jquery packery

我有一个包含拖放和1点击事件处理程序等属性的元素。我克隆了这个元素,发现克隆元素的事件处理程序正常工作,只要原始元素仍在DOM中。但是,当我从DOM中删除原始内容时,事件处理程序将被销毁。我的代码是:

el = $(@id).clone(true)
$('#container').packery('addItems', el)
el.appendTo('#container')
$('#container').packery('layout')
$('#lowerContainer > ' + @id).remove()

只要未添加最后一行,el上的事件处理程序就会起作用。但是,添加$('#lowerContainer > ' + @id).remove()会导致处理程序死亡。有没有人知道如何在删除原始文件后将处理程序保留在克隆元素中?提前谢谢!

1 个答案:

答案 0 :(得分:0)

您应该在容器上而不是在单个项目上定义您的点击处理程序:

$('#container').on('click', '.item', function() {...});

在这种情况下,它会处理现有项目上的点击次数,以及稍后添加的点击次数。