2015-03-02 202 views
0

我試圖在屏幕上顯示一個div的內容到不同的div中。我想要複製的div有一組按鈕,我想逐字鏡像內容,所以所有的javascript funcitons/listeners仍然可以工作。如何將一個div的內容鏡像到另一個div的內容中?

我已經試過:以上

$("#copy").appendTo("#target"); 

$(#copy).clone().appendTo("#target"); 

兩條線複製按鈕和類,但沒有原隸屬按鈕的JavaScript的工作。有沒有人有任何想法,我怎麼能做到這一點?

這聽起來有點奇怪,但這對我想做的事情是必要的。

+2

「克隆」是一個更好的詞,因爲鏡像意味着方向的顛倒。另外,我懷疑你的字面意思是「從字面上」。 :P – isherwood 2015-03-02 21:23:32

+4

提示#1:ID必須是唯一的。 – zerkms 2015-03-02 21:24:21

+0

你的代碼將JS附加到按鈕看起來像什麼?在克隆發生之前,您需要確保將事件附加到頁面上存在的某個容器。 – 2015-03-02 21:27:13

回答

4

我想嘗試這兩種:

$(#copy).html().clone(true).appendTo("#target"); 

或者這樣:

$(#copy).clone(true).attr.('id', 'some_other_id').appendTo("#target"); 

...防止重複ID的場景。當然,你會想檢查所有後代元素的同一問題。

然後,考慮事件處理程序:

通常情況下,勢必原始元素任何事件處理程序不會被複制到克隆。可選的withDataAndEvents參數允許我們改變這種行爲,而且也將所有事件處理程序的副本綁定到元素的新副本。從jQuery 1.4開始,所有元素數據(由.data()方法附加)也被複制到新副本中。

Read more on that

最好的辦法可能是使用事件代理(通過on()法)和類選擇。這樣你新克隆的東西就可以工作。

+0

應該提及'withDataAndEvents'是傳遞給克隆方法的布爾值。 (即'$(#copy).clone(true)') – talves 2015-03-02 21:36:32

+0

良好的通話。謝謝。 – isherwood 2015-03-02 21:37:58

0

你試過設置withDataAndEvents爲true嗎?如果您檢查有關克隆的文檔,則默認爲false;

http://api.jquery.com/clone/

withDataAndEvents (default: false) 
Type: Boolean 
A Boolean indicating whether event handlers should be copied along with the elements. As of jQuery 1.4, element data will be copied as well. 

也許嘗試克隆爲使

$("#clone").clone(true, true) 

此外,如果你只是克隆輸入這應該工作。 某些表單元素的動態狀態(例如,鍵入到textarea中的用戶數據以及對select進行的用戶選擇)未被複制到克隆的元素。克隆輸入元素時,元素的動態狀態(例如,輸入到文本輸入中的用戶數據和對複選框進行的用戶選擇)保留在克隆元素中。

相關問題