2012-10-15 38 views
0

下面是我的代碼(不要擔心'off',它是基於用戶點擊位置的偏移量)。在第二行中,我試圖克隆現有的div,然後顯示克隆副本?但它不起作用。但是,如果我刪除克隆()然後代碼確實工作,但它當然只是顯示現有的div,這不是我所需要的。克隆一個div並使其出現在屏幕上不起作用

var off = $(this).offset(); 
var div = $('#testtt').clone(); 
div.css({ position: "absolute", top: off.top, left: off.left }); 
div.show(); 

任何提示?

+0

爲什麼你不使用$(本).clone(); ? – boyd

+0

這不是我想克隆的元素,而是我點擊的元素。 –

+2

可能因爲您未將克隆的元素附加到DOM的任何位置。 –

回答

2

你克隆DIV 但不是在你的DOM的任何地方插入吧..

因此,它是不存在的,直到你做

var off = $(this).offset(); 
var div = $('#testtt').clone(); 
div.css({ position: "absolute", top: off.top, left: off.left }); 

$('body').append(div); <-- Appending to body here.. You can append anywhere you want 
0

您需要通過將其追加到另一個元素使用append()appendTo()

0

可能有重複的ID

API page一個問題:

注意:使用.clone()具有生產要素與 重複ID屬性,它應該是副作用獨特。其中 可能,建議避免使用此 屬性克隆元素或使用類屬性作爲標識符。

克隆後,嘗試改變克隆元素的ID:

div.attr('id').val('#testtt') 
0

按照從@andrewWhitaker的評論,您需要將新元素添加到DOM。例如

div.attr('id').val(div.attr('id')+"_cloned"); 
$("#my_container_element_id").append(div); 

您也可以刪除

div.show(); 
2

您需要添加DIV到您的網頁。目前,您剛剛創建了一個對克隆的引用而不顯示它。

$(「body」)。append(div);

1

您必須將克隆的div附加到您的html內部某處。 例如:

var off = $(this).offset(); 
var div = $('#testtt').clone(); 
div.css({ position: "absolute", top: off.top, left: off.left }); 

// append to parent of "this" 
var parent = $(this).parent(); 
div.appendTo(parent); 

// should be unnecessary, except if the style is display:none 
//div.show(); 
0
jQuery中

$('.addRow').click(function(){ 
var off = $(this).offset(); 
var div = $('#testtt').clone(); 
div.css({ position: "absolute", top: off.top, left: off.left }); 
div.show(); 
div.appendTo($("#testtt"); 

})