jQueryUI draggable在我的draggable div上设置"position:relative"

Oli*_*ber 15 jquery-ui css-position draggable

今天早上我遇到了jQuery draggable的奇怪问题,我想知道是否有其他人遇到过这个问题.

我在一个大div里面有很多小div.它们绝对定位:CSS中的"position:absolute"为其类,实际位置本身在JS中按需计算和设置.

现在我添加了允许这些div可拖动的功能.

但是,只要我制作一个可拖动的,就会直接在元素上给出"position:relative",正如您可能想象的那样,会严重影响屏幕上的位置.

有谁知道为什么它改变这样的"位置"或如何告诉它不?

编辑:

刚刚意识到有一个相当明显的答案盯着我的脸 - 对我的立场很重要:绝对!这似乎解决了这个问题.但是我仍然感兴趣,如果有人知道为什么它设置"位置:相对"这样(并且不能使其可配置或首先检查它是否需要位置)...我想知道我刚存储了什么问题为我自己;-)

小智 12

"我今天遇到了同样的问题.原因是我正在申请draggable()一个动态创建的元素.我'后来'追加它dom.dom当你申请时,元素应该在draggable()(如果一个类正在应用样式).简而言之,当它发现没有任何附加位置时element,它补充道relative." - Jashwant

冷杉做:.append(jElement)然后:jElement.draggable()

出于某种原因,贾什万特在对这个问题的评论中提出了他的答案.所以我认为其他人在这里重新发布它会很方便.


fel*_*ppe 1

我也遇到过这种情况,但仅限于 Chrome。原因?

事情是这样的:

$("#div-popup").draggable({ handle: ".top", containment: 'document'});
Run Code Online (Sandbox Code Playgroud)

然后我删除了包含参数,如下所示:

$("#div-popup").draggable({ handle: ".top"});
Run Code Online (Sandbox Code Playgroud)

因此,它与浏览器(本例中为 Chrome)有关,当您指定元素可拖动的包含位置时,浏览器将位置设置为“相对”。