Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我克隆一个可拖动的div时,为什么不';克隆人不可拖动吗?_Javascript_Jquery - Fatal编程技术网

Javascript 当我克隆一个可拖动的div时,为什么不';克隆人不可拖动吗?

Javascript 当我克隆一个可拖动的div时,为什么不';克隆人不可拖动吗?,javascript,jquery,Javascript,Jquery,我正在尝试使克隆的div可拖动: $("div").clone(true).removeAttr("id").appendTo($("body")).draggable(); 我也试过: $("div").clone(true,true).removeAttr("id").appendTo($("body")).draggable(); 它创建了一个克隆,但该克隆不可拖动。有人能告诉我为什么这不起作用吗?给你。您不想克隆(true)。只需clone()。前者也将克隆可拖动事

我正在尝试使克隆的div可拖动:

 $("div").clone(true).removeAttr("id").appendTo($("body")).draggable();  
我也试过:

 $("div").clone(true,true).removeAttr("id").appendTo($("body")).draggable();     

它创建了一个克隆,但该克隆不可拖动。有人能告诉我为什么这不起作用吗?

给你。您不想
克隆(true)
。只需
clone()
。前者也将克隆可拖动事件,这就是为什么它有这种奇怪的行为

以下是一个例子:

如何保存数据:

var data = $('div').data();
var newDiv = $("div").clone().appendTo('body').draggable();
newDiv.data(data);

这里的示例:

为什么不先销毁原始元素draggale和可调整大小的插件,如:

$("#orignaldivid").draggable("destroy");
$("#orignaldivid").resizable("destroy");
然后制作一个克隆,如下所示:

  var clone = $("orignaldivid").clone(true).attr("id", GetNewId()); //GetNewId may be any function to generate unique id
然后将其附加到
#orignaldiv父项
,如:

  $(clone).appendTo($("#orignaldivid").parent());
最后,
重新分配给原始
分配给克隆
所有插件

$("#orignaldivid").draggable();
$("#orignaldivid").resizable();
$(clone).draggable();
$(clone).resizable();

可能会有帮助

你还在使用
live()
?是的,“live”在那里,我尝试了“on”也不起作用,但现在我正在制作“克隆div”,可拖动,显式地,现在它也不是拖动的@inhan的副本,我想做同样的事情,但我想它不是真正的副本,因为他试图用这些答案解决问题,但没有成功。不,不是,这个案例不同。非常感谢,工作正常,但是现在我如何仅用一个键复制其他相关数据,我通过.data()输入,初始值为0,因此,我在克隆的div中手动输入了它,但是如果有一些解决方法,那么我很想知道,因为在本例中,它是一个单键,但是如果有100个键呢?不清楚您的意思
clone()
应该复制
div
中的所有内容。它不会复制我们通过.data()插入的数据,意思是假设我插入了起始值为0的“a”,比如$(“div”).data(“a”,0);那么这个“a”就不能用.clone()复制了。您可以将旧数据复制到新元素中。我会更新我的答案。
$("#orignaldivid").draggable();
$("#orignaldivid").resizable();
$(clone).draggable();
$(clone).resizable();