2012-01-20 41 views
1

我试图复制一个div并将其追加到它的克隆之上。不幸的是,它似乎正在创造额外的重复。这是怎么回事?jQuery克隆/追加创建多个副本

下面是一个例子:http://jsfiddle.net/QEN5N/

+0

您可能还想使用**。prependTo()**进行研究。您目前正在使用.appendTo(),它在元素的末尾添加了一些内容,但是prependTo将“追加到顶部”(http://api.jquery.com/prependTo/) –

回答

2

现场将其应用到所有新的与类,让你获得对您创建的元素的鼠标悬停,然后它使其他等等。

从你的克隆中删除searchResultItem类,将其更改为如此。

elem.addClass('created').removeClass('searchResultItem'); 

或:

disclude创建的。像这样:

$('.searchResultItem:not(.created)') 

无论工程:)

+0

在您发布时正确。但那是一个完美的答案。谢谢!以下是后代的小提琴:http://jsfiddle.net/QEN5N/3/ –

+0

我相信Frédéric是正确的。但解决方案依然存在。 –

2

http://jsfiddle.net/QEN5N/2/

重要的变化:

$('.searchResultItem:not(.clone)').live({ ... 

elem.addClass('clone'); 

.live结合鼠标悬停也克隆元素。

PS .live已被弃用使用.on代替。

0

您正在克隆整个div,包括类“searchResultItem”。所以它也克隆了该项目的行为。只是在一个行添加到您的代码你elem.css以上:

elem.attr('class', 'searchResultItemClone'); 

而实际上,那么你可以拿出所有还申请您的样式,只是添加searchResultItemClone到您的样式表的JavaScript。