Javascript 克隆并附加新的排序表列表后,jQuery UI排序表不会刷新

Javascript 克隆并附加新的排序表列表后,jQuery UI排序表不会刷新,javascript,jquery,html,jquery-ui,jquery-ui-sortable,Javascript,Jquery,Html,Jquery Ui,Jquery Ui Sortable,好的,我在这里尝试的是让jqueryui通过克隆一个新列来更新页面上显示的排序表。如果克隆列演示页面,则新列应该能够接收现有列列表中的两个项目,以及可以从顶部列表a拖动到其中一个排序表中的新项目。这对于初始设置很好,但是一旦你克隆并附加一个新的列,事情就会破裂;新克隆的列未被识别为可拖放目标,我也无法将新项目从列表a拖到新克隆的列列表中 直观地说,sortable'refresh'命令应该足以让sortable检查设置中的任何内容是否发生了更改,并使新元素能够接收和处理可排序项。但是,我尝试在单

好的,我在这里尝试的是让jqueryui通过克隆一个新列来更新页面上显示的排序表。如果克隆列演示页面,则新列应该能够接收现有列列表中的两个项目,以及可以从顶部列表a拖动到其中一个排序表中的新项目。这对于初始设置很好,但是一旦你克隆并附加一个新的列,事情就会破裂;新克隆的列未被识别为可拖放目标,我也无法将新项目从列表a拖到新克隆的列列表中

直观地说,sortable'refresh'命令应该足以让sortable检查设置中的任何内容是否发生了更改,并使新元素能够接收和处理可排序项。但是,我尝试在单击按钮时执行此操作,但似乎没有效果

我还试图再次直接调用“.columnlist”选择器上的整个可排序插件,希望它能在新的匹配元素上初始化,并跳过已经具有可排序的元素

哦,当然,我使用clonetrue,true来确保事件和数据随它一起出现

请参见此处的演示页面: 请尝试以下操作:

将项目从列表A拖动到列表A或B列中。拖动到可排序项可以工作 重新订购列表A列中的项目。可排序工程。 单击克隆按钮。此时会出现列C的克隆。 尝试将任何项目从列表A或其他列列表拖到克隆的列C,结果:它没有响应。就好像它不存在一样。 有趣的是:如果您已经将项目放在原始列C中,然后对其进行克隆,则克隆列中的项目可以移动到其他列表中,但一旦移出,就无法移动回克隆列表。好像它拒绝自己的后代。
我怎样才能使克隆的列表成为可排序的和有效的DropZone呢?

正如jaredhoyt所指出的,它确实是关于深度克隆的。显然,jQueryUI不需要深度克隆的元素,如果您这样做,并且希望新元素也是可删除的目标,那么实际上就会中断

但是,我发现需要在列上执行另一个$'selector'。sortable以识别克隆列表。这就是贾雷霍伊特在小提琴中所做的。而对我来说,直觉上“刷新”方法将是最优雅的解决方案,不是吗


不管怎样,案子已经结案了。我很高兴这很简单,因为没有用数据和事件克隆列,只克隆HTML。

有什么理由需要进行深度克隆吗?我已经创建了一个没有深度克隆的示例,看起来很有效-