繁体   English   中英

jQuery clone()与深拷贝影响可拖动

[英]jquery clone() with deep copy affecting draggable

我有一个应用程序,其中单击按钮,然后创建DOM元素的克隆副本并将其放置在页面上的特定位置。 此克隆副本必须是深层副本,因为其子元素中包含事件。 因此,用于创建克隆的代码为:

var $cloneTags = $div.clone(true, true).attr('id', obj + num);

但是,当添加true, true弄乱克隆对象的可拖动功能(仅在第二个克隆和任何后续克隆中发生)。 如果我放弃true, true ,则此行代码应做的事以及后续对象均可拖动:

 $cloneTags.draggable({ cursor: "move", snap: '#dropHere', helper: "clone" });

但是,这会导致children元素的事件处理程序不再起作用。

我的问题是如何创建深层副本,但每个克隆的元素仍然可以分别拖动?

我的建议是确保孩子中的所有事件都由“事件委托”管理,而不是直接绑定到元素本身。

然后,您可以使用浅表克隆,而不会遇到冲突

而不是做:

$('.my-draggable-item .someChild').click(function(){...})

$('#mainContainer').on('click', '.my-draggable-item .someChild', function(){...})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM