0

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

到目前为止的代码是:

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

$('body').append(foo);
$('body').append(bar);

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

任何建议都非常感谢!

4

1 回答 1

5

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

这些true参数将使它成为原始对象的深层副本。

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

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

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

于 2012-08-15T14:02:47.647 回答