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

时间:2012-08-30 10:24:47

标签: jquery-ui draggable css-position

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

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

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

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

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

修改

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

3 个答案:

答案 0 :(得分:12)

“我今天遇到了同样的问题。原因是我在动态创建的元素上应用draggable()。我'稍后'将其附加到dom。元素应该在{{} 1}}当您应用dom时(如果某个类正在应用样式)。简而言之,当它找不到draggable()附加的位置时,它会添加element。“ - Jashwant

Firs do:relative然后:.append(jElement)

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

答案 1 :(得分:0)

这也发生在我身上,但仅限于Chrome。原因?

就是这样:

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

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

$("#div-popup").draggable({ handle: ".top"});

所以它是关于浏览器(在这种情况下是Chrome),当你指定元素可以拖动的包含时,它将位置设置为Relative。

答案 2 :(得分:0)

在我的情况下,它似乎是样式表和javascript加载之间的竞争条件......

我意识到我错误地在文档头部中包含javascript之后的样式表。它们应该包含在javascript之前,因为$(document).ready()不考虑浏览器加载的CSS:https://stackoverflow.com/a/1324720/3633109