2012-11-09 39 views
2

我通常在javascript中爲元素使用自定義變量。是這樣的:JavaScript複製事件和自定義變量的元素

document.getElementById("test").myVar=function(){ 
    // do something 
}; 

現在我需要複製一個元素(document.getElementById("test"))和地方追加它。我試圖與jQuery使用clone()。像這樣:

$("#test").clone(true,true).attr("id","test2").appendTo("#somewhere"); 

但它不能複製myVar在新的元素。我該如何解決它?

回答

5

爲什麼哦,你爲什麼賦予元素任意的屬性?

既然您使用jQuery爲什麼不使用.data()方法? (雖然我還是不明白,你爲什麼會保存一個元素上的功能..

$('#test').data('myVar', function(){...}); 

不同的虐待可能是綁定一個自定義事件處理程序(namespaced to avoid further issues),但我會堅持.data()

$('#test').bind('myVar.variables', function(){...}); 
+0

+1究竟是什麼'data-'屬性 – ManseUK

+0

+1因爲下半場讓我發笑。 (這是正確的答案) –

3

你可以使用data來存儲您的附加功能:

$("#test").data("myVar", function(){}); 

然後,當你clone設置true參數withDataAndEvents它應該工作。

+0

我認爲你應該* *應*替換*應* – ManseUK