2011-11-02 42 views
0

我想克隆與內容,表單元素和附加事件的div。一旦我克隆div我想重命名它。問題是當我重命名我已克隆源div的div也被重命名。克隆一個現有的div與所有附加事件的最有效方法是什麼,然後創建一個具有所有相同特性的新的不同名稱?克隆div完整的事件對象完好然後重命名id刪除源div

我使用jQuery 1.6

我可以成功地克隆使用以下,但是當我試圖重新命名它的源也更名的項目。

var $oldObject = $('#tabs-1'); 

var newObject = jQuery.extend(true, {}, $oldObject); 
newObject.attr('id',"newid"); 

<div id="tabs-1"> 
<fieldset> 
<div> 
<input id="Radio1" type="radio" /> 
</div> 
</fieldset> 
</div> 

回答

1

您當前的代碼只是深複製的jQuery結構代表你的元素,而不是元素本身。因此,當您撥打.attr()時,它仍然是被修改的原始元素。

要正確克隆一個HTML元素其活動做到這一點:

var $oldObject = $('#tabs-1'); 
var $newObject = $oldObject.clone(true); 

$newObject.attr('id', 'newid'); 

詳情請參閱http://api.jquery.com/clone/

+0

這會保留所有與源對象綁定的事件嗎? – user686483

+1

@ user686483你看了我收錄的鏈接...? – Alnitak