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



我有一个元素,具有拖放和一键式事件处理程序等属性。我已经克隆了这个元素,发现只要原始元素仍在 DOM 中,克隆的元素就有事件处理程序工作。但是,当我从 DOM 中删除原始文件时,事件处理程序被销毁了。我的代码是:

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

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

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

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

在这种情况下,它将处理对现有项目的单击以及稍后添加的单击。

相关内容

  • 没有找到相关文章