jQuery可拖动和克隆

6
var icon = $("<div style='width:100px;height:100px;border-style:solid;'>");
icon.draggable({
    containment: 'parent',
    axis: 'y',
    drag: function(e,ui) { }
});
icon.clone(true).appendTo($("body"));

我克隆之后,图标拖动停止工作了。有人知道如何修复吗?

谢谢。


在克隆上再次调用 draggable() 吗? - Frédéric Hamidi
clone()在jQuery UI中的$.widget小部件工厂中不受支持。[我几个月前读到过这个问题,但不记得链接了] 可能正因为如此,你才会看到Ed Saito演示时出现问题。你需要使用$.clone(false),然后再次应用可拖动功能。 - Ajaxe
2个回答

4

可拖动的功能不会停止工作。

然而,当您将鼠标悬停在克隆元素上并移动它时,被拖动的是原始元素。

点击这里查看此行为:http://www.jsfiddle.net/bxH3Q/

要解决这个问题,您需要使每个克隆体都可以拖动。


谢谢大家的参与,但我的问题是我使用组件创建架构一次,然后使用克隆来显示它们,隐藏会删除克隆。每个组件都有点击、鼠标悬停等功能,除了可拖动之外,其他都正常工作 =( - user470071

1
你到底想做什么?你真的需要克隆吗? 你可以使用其中一个 draggable() 选项:helper,它会在拖动时克隆元素。在这里查看它的效果:http://jsfiddle.net/nZm5H/ 如果你需要这样克隆,你必须让克隆体也可拖动:像这样

你的第一个示例不起作用,我认为关键在于你应该能够克隆所有事件,这就是为什么将true设置为克隆参数的原因,因此你应该在克隆上调用draggable。 - mcgrailm
@mcgrailm 当然可以工作。也许是你的浏览器或浏览器设置问题。好好检查一下吧,伙计。 - Rodrigo Souza
不好意思,伙计,不起作用。我在FF 3.6.3 Mac、Safari Mac和IE6上试过了,都不行。 - mcgrailm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接