2015-06-27 21 views
0

無法找到這個問題,我想這不是一個真正的問題,只是我不知道如何去做。 在點擊某個div時,我想打開一個新選項卡。我設法在下面的代碼中做到這一點,但是會發生什麼原始的div從原始頁面中消失,並且僅在新標籤中顯示,我不太清楚爲什麼會發生這種情況,但我想要克隆該對象 - 但沒有成功。jQuery - 只要我把它放在另一個頁面就會消失對象

這是相關代碼:上點擊 打開新的標籤頁:

$(document).on("click", ".button", function(){ 
    window.toSend = $(this); 
    window.newTab = window.open("test.html", "_blank"); 

的對象添加到新的標籤:

var data = parent.window.opener.toSend; 
    $(".clickedButton").html(data); 

任何解決方案?或者首先,爲什麼這會發生?謝謝!

+0

您嘗試過'window.toSend = $(this).clone();'?從未感覺到dumber(它的工作原理) –

+0

。謝謝!你能解釋爲什麼會發生這種情況嗎?爲什麼把這個物體放在另一個地方從原來的外觀上去掉了? – user3445972

+0

我已經更新了原因的答案。 –

回答

1

從jQuery網站: (https://api.jquery.com/clone/

如在討論中示出了用於.append(),通常,當元件被某處DOM插入時,它從它的原位置移動。 .. ...

爲了防止這種情況,而是創建元素的副本,你可以寫:

$(".hello").clone().appendTo(".goodbye");

所以你的情況:

$(this).clone();

+1

>當一個元素被插入DOM中的某個地方時,它將從原來的位置移動...... 這就是確切的原因。我用粗體格式強調。 – AnthonyDJ

+0

嗯..我收回我的評論歡呼... –

1

你只需要clone股利:

window.toSend = $(this).clone();

克隆創建匹配的元素的深層副本。

使用$(this)您選擇了該元素,因此當您將其放置在其他地方時,它將從此處移開。這就像在DOM中拾取和移動元素。

clone製作元素的副本,以便原始元素不受影響。它是ike創建一個副本,並將該副本放置在DOM中的其他地方

相關問題