克隆元素上的事件?

时间:2014-06-20 21:36:48

标签: jquery

我点击了这个:

$('.btn-delete').on('click', function(){console.log('delete')});

然后克隆一个div:

this.fileTemplate = $('.file:first').remove().clone(true);

稍后我将克隆添加回页面。

'删除'无法记录

HTML:

<li class="file">
   <button class="btn-delete">&times;</button>
</li>

1 个答案:

答案 0 :(得分:1)

由于您不是克隆按钮本身,而是父母,因此您需要进行深度克隆:

this.fileTemplate = $('.file:first').clone(true,true);
$('.file:first').remove();

http://api.jquery.com/clone/#clone-withDataAndEvents-deepWithDataAndEvents


但是,如果您仍然要删除该元素,则根本不需要克隆它 - 只需使用.detach()代替{{{}}来存储包含其所有事件的div 1}}:

.remove()

http://api.jquery.com/detach/

要添加该元素的副本,请在分离后对其进行深度克隆:

this.fileTemplate = $('.file:first').detach();