Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Jquery ui jQueryUI可拖动集“;位置:相对“;在我的拖鞋上_Jquery Ui_Draggable_Css Position - Fatal编程技术网

Jquery ui jQueryUI可拖动集“;位置:相对“;在我的拖鞋上

Jquery ui jQueryUI可拖动集“;位置:相对“;在我的拖鞋上,jquery-ui,draggable,css-position,Jquery Ui,Draggable,Css Position,今天早上我在jQuery draggable上遇到了一个奇怪的问题,我想知道是否有其他人遇到过这个问题 我在一个大div中有许多小div。它们在CSS中绝对定位:“position:absolute”用于它们的类,实际位置本身在JS中根据需要计算和设置 现在我添加了允许这些div可拖动的功能 但是,一旦我制作了一个可拖动的,它就会直接在元素上给出“position:relative”,正如您所想象的,这会严重扰乱屏幕上的位置 有人知道它为什么会这样改变“位置”吗?或者如何告诉它不要这样做 编辑:

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

我在一个大div中有许多小div。它们在CSS中绝对定位:“position:absolute”用于它们的类,实际位置本身在JS中根据需要计算和设置

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

但是,一旦我制作了一个可拖动的,它就会直接在元素上给出“position:relative”,正如您所想象的,这会严重扰乱屏幕上的位置

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

编辑:


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

这也发生在我身上,但只发生在Chrome上。原因

就是这样,

$("#div-popup").draggable({ handle: ".top", containment: 'document'});
$("#div-popup").draggable({ handle: ".top"});
然后我删除了包容参数,如下所示:

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

所以这是关于浏览器(本例中为Chrome),当您指定元素可拖动的容器时,它将位置设置为相对位置

“我今天遇到了同样的问题。原因是我在一个动态创建的元素上应用了
draggable()
。我“稍后”将它附加到
dom
。应用
draggable()
时,元素应该在
dom
中(如果类应用了样式)简言之,当它发现没有附加
元素的位置时,它会添加
相对的
“-Jashwant”

首先做:
.append(jElement)
然后:
jElement.draggable()


出于某种原因,Jashwant在对问题的评论中给出了他的答案。因此,我认为将它转发到这里对其他人来说是很方便的。

在我的例子中,这似乎是样式表和javascript加载之间的竞争条件


我意识到我犯了一个错误,在文档头的javascript之后包含样式表。它们应该包含在javascript之前,因为
$(document).ready()
不考虑浏览器加载的CSS:

您使用的是什么版本?你如何初始化它?Dragable支持绝对和相对定位。仔细检查代码,默认情况下,应该将其设置为相对的唯一原因是如果元素上没有设置位置类型。谢谢。我用的是1.7.2。位置是在类中设置的,而不是在元素上设置的,如果元素上没有draggable,我可以在Chrome调试器中看到它是“position:absolute”计算的。它是有效的。当我将draggable应用于它时,“position:relative”直接应用于元素。这可能是一个jquery错误,它应该使用getComputedStyle来查找位置。这是一个非常旧的版本。您可能应该升级到1.8,看看这是否会有所不同。您使用的是
helper
draggable选项还是任何其他选项?但是,唯一确定位置:相对的一行是我今天遇到了同样的问题。原因是我在动态创建的元素上应用了
draggable()
。我“稍后”将其添加到
dom
。应用
draggable()
时,元素应该位于
dom
中(如果类正在应用样式)。简言之,当它没有找到与
元素
相关的位置时,它会添加
相对的
。这个问题的出现与上面1.10.2中所述的完全相同,并在Win7上的ie10中得到了体现,并且元素已经添加到DOM中,其中有一个类指定了位置:绝对值以及应用Dragable时顶部和左侧的值。设置$(“#foo”)[0]。style.position=“”;调用draggable后立即解决了有效的问题,即使我真的不知道为什么会发生这种情况。