Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 在单独的容器中拖放,并调整被拖放元素的位置_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 在单独的容器中拖放,并调整被拖放元素的位置

Javascript 在单独的容器中拖放,并调整被拖放元素的位置,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,[编辑]:TCHdvlp对其以下回复的评论中给出了解决方案。非常感谢 我需要将元素从一个容器(container1)拖到另一个容器(container2)再拖回来,就像这把小提琴一样: (这不是我创建的:) 正如您在上面的示例中所看到的,当元素附加到其新容器时,其“style”属性将被删除,并捕捉到新容器的左上角 $(ui.draggable).appendTo($(this)).removeAttr('style'); 我想让拖拉机留在新的容器里,放在那里 但是如果我删除.removeAt

[编辑]:TCHdvlp对其以下回复的评论中给出了解决方案。非常感谢

我需要将元素从一个容器(container1)拖到另一个容器(container2)再拖回来,就像这把小提琴一样:

(这不是我创建的:)

正如您在上面的示例中所看到的,当元素附加到其新容器时,其“style”属性将被删除,并捕捉到新容器的左上角

$(ui.draggable).appendTo($(this)).removeAttr('style');
我想让拖拉机留在新的容器里,放在那里

但是如果我删除.removeAttr('style')

位置信息会保留,但不精确,因为拖动表的父级已更改。因此,当从container1放入container2时,我的拖拽装置的位置要低得多,而在另一种情况下则要高得多

我能够根据容器的相对位置计算元素“着陆”的新位置。但我不知道如何定义这个位置

  • 我应该让.removeAttr('style')用新值重新创建它吗?但是怎么做呢
  • 我应该删除该零件,但修改位置值吗?但是怎么做呢
我希望我很清楚,你能给我一些建议


谢谢

认真阅读所有的小提琴!可拖动div有一个
top:10px;左:10px;属性
。当它被拖动时,这些属性将更改。当它被放置在另一个可放置区域时,removeAttr(“样式”);将删除内联样式并设置回10*10px偏移。但是,它没有折断。此外,可拖动元素为
position:absolute
,但可拖放区域为
position:relative
,这意味着子元素的位置相对于其父元素

这就是为什么,对于原来的小提琴,10*10px的位置看起来总是一样的,无论是在可放下的区域

对于容器和div,在css
position:relative
position:absolute
中删除。 删除
dropped
功能中的
removeAttr
append

因为我们不希望元素附加到该区域,所以我们不使用
append
。 我们将使用2个变量来比较上一个和当前可拖放区域


“因为我们不希望元素附加到该区域,所以我们不使用append。”。。。对不起,如果我不清楚的话。事实上,我希望删除的项目是新容器的子项,这样我就可以轻松浏览我在那里删除的所有对象,我得到它们的信息。好的,从最初的小提琴开始,只需删除可拖放区域上的
位置:relative
,然后删除
removeAttr(“样式”)
$(ui.draggable).appendTo($(this));