在jQuery中拖动时元素不能有z-index最大值

Posted

技术标签:

【中文标题】在jQuery中拖动时元素不能有z-index最大值【英文标题】:element cant have z-index maximum when drag in jQuery 【发布时间】:2012-12-07 18:43:08 【问题描述】:

我有一个可拖动的项目,但当我拖动它时它位于其他 html 元素下,即使我设置了.item_dragable cursor: move; z-index: 2147483646; 和事件可拖动:

jQuerydragable.draggable(
    cancel: "a.ui-icon", // clicking an icon won't initiate dragging
    revert: "invalid", // when not dropped, the item will revert back to its initial position
    containment: "document",
    helper: "clone",
    cursor: "move",
    zIndex: 2147483647
);

有什么问题吗?我使用最新的 jQuery 和 jQuery ui

谢谢

【问题讨论】:

你检查过父元素吗?请提供一个 jsfiddle 或工作示例。 我的可拖动项在另一个元素中,它的 z-index 是否保护父元素? 是的,确实如此!具有较低 z-indexes 的父元素将在 childs z-index 之前(如果您理解的话,与父母兄弟姐妹和父母父母相比)。 是的,所有浏览器的最大zindex是2147483647,我已经设置好了 如何在不更改父索引的情况下设置可拖动项目 z-index 最大值 【参考方案1】:

让您的可拖动项目超越其他所有内容的最佳方法是使用选项appendTo(请参阅jQuery UI doc)并将其设置为"body",如下所示:

jQuerydragable.draggable(
    cancel: "a.ui-icon", // clicking an icon won't initiate dragging
    revert: "invalid", // when not dropped, the item will revert back to its initial position
    containment: "document",
    helper: "clone",
    cursor: "move",
    zIndex: 100000,
    appendTo: "body"
);

当然还要设置一个足够大的 z-index 以高于所有其他的。

【讨论】:

以上是关于在jQuery中拖动时元素不能有z-index最大值的主要内容,如果未能解决你的问题,请参考以下文章

不能使 jQuery UI 元素可拖动?

jQuery ui 可拖动元素在滚动 div 之外不能“拖动”

JQuery 可拖动的 div

jQuery可拖动:在拖动开始时访问被拖动的元素

jQuery sortable:拖动一个元素时列表元素会跳开

克隆时的jQuery可拖动元素不可拖动