多次克隆对象并在jQuery中附加克隆

zok*_*oku 0 javascript jquery

我尝试提供预定义的Object Grab以便稍后克隆它并使用更多功能填充克隆.我面临的问题是,我可以克隆对象,但之后只有其中一个附加到DOM.

到目前为止的守则是:

var foo = jQuery.extend({}, Grab);
var bar = jQuery.extend({}, Grab);

$('body').append(foo);
$('body').append(bar);
Run Code Online (Sandbox Code Playgroud)

我使用jQuery.extend()因为我需要Grab与克隆的.daggable功能.

任何建议都非常感谢!

Aln*_*tak 5

如果Grab是您通常应该.clone(true, true)用来复制它的元素,而不是$.extend()

true参数将导致它是原始对象的深副本.

但是,这可能无法正确复制可拖动设置.仅仅因为克隆了对象,就不能保证所有的状态都被复制了.特别是如果任何可拖动状态存储在词法范围的私有变量中,它将不起作用.

同样,该.draggable函数在第一次添加到元素时执行的任何其他设置也不会完成.

恕我直言,你最好的选择是使用.clone(false)浅拷贝,然后调用.draggable副本,然后重新附加他们的事件处理程序.