2012-01-20 16 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。