2

我通常对 javascript 中的元素使用自定义变量。像这样的东西:

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

现在我需要复制一个元素 ( document.getElementById("test")) 并将其附加到某处。我尝试clone()与 jquery 一起使用。像这样的东西:

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

但它不能在新元素中复制 myVar 。我该如何解决?

4

2 回答 2

5

为什么,哦,为什么要为元素分配任意属性?

既然你使用 jQuery 为什么不使用该.data()方法呢?(虽然我仍然不明白为什么你会在一个元素上存储一个函数..

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

另一种滥用可能是绑定自定义事件处理程序(命名空间以避免进一步的问题),但我会坚持.data()

$('#test').bind('myVar.variables', function(){...});
于 2012-11-09T16:14:51.560 回答
3

您可以使用数据来存储您的附加功能:

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

然后,当您将设置克隆true到参数withDataAndEvents时,它应该可以工作。

于 2012-11-09T16:14:58.637 回答