Javascript 在单独的容器中拖放,并调整被拖放元素的位置
[编辑]:TCHdvlp对其以下回复的评论中给出了解决方案。非常感谢强> 我需要将元素从一个容器(container1)拖到另一个容器(container2)再拖回来,就像这把小提琴一样: (这不是我创建的:) 正如您在上面的示例中所看到的,当元素附加到其新容器时,其“style”属性将被删除,并捕捉到新容器的左上角Javascript 在单独的容器中拖放,并调整被拖放元素的位置,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,[编辑]:TCHdvlp对其以下回复的评论中给出了解决方案。非常感谢 我需要将元素从一个容器(container1)拖到另一个容器(container2)再拖回来,就像这把小提琴一样: (这不是我创建的:) 正如您在上面的示例中所看到的,当元素附加到其新容器时,其“style”属性将被删除,并捕捉到新容器的左上角 $(ui.draggable).appendTo($(this)).removeAttr('style'); 我想让拖拉机留在新的容器里,放在那里 但是如果我删除.removeAt
$(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,在cssposition:relative
和position:absolute
中删除。
删除dropped
功能中的removeAttr
和append
因为我们不希望元素附加到该区域,所以我们不使用append
。
我们将使用2个变量来比较上一个和当前可拖放区域
“因为我们不希望元素附加到该区域,所以我们不使用append。”。。。对不起,如果我不清楚的话。事实上,我希望删除的项目是新容器的子项,这样我就可以轻松浏览我在那里删除的所有对象,我得到它们的信息。好的,从最初的小提琴开始,只需删除可拖放区域上的
位置:relative
,然后删除removeAttr(“样式”)
。
$(ui.draggable).appendTo($(this));