自动设置带有内容的重叠div的z-index

时间:2012-09-06 13:41:34

标签: jquery z-index draggable handler

我有一个非常具体的问题,以前似乎没有问过 - 至少我没有找到任何东西。无论如何,情况如下:

我有n个可拖动的div。那些包含列表的div,可以通过doubleclick编辑,它们是可以排序的,不断打开和打开 - 你看到你可以在这些容器中做一些事情。

现在我的问题: 首先,作为JQuerys draggable的一部分,我可以将z-index自动设置为所有元素的最高值 - 但仅限于它被拖动时。只需在事件区域内单击一下,z-index就会设置为auto,这并不意味着“clicked”元素将显示在顶部。

第二个也是更大的问题是,似乎不可能让div上的任何处理程序在不修改将焦点设置到div或其任何子节点的每个处理程序的情况下将其置于顶部。

是否有任何关于我如何在整个div中添加句柄的建议,在点击任何地方时总是会调用它?

非常感谢,

Nurickan

2 个答案:

答案 0 :(得分:2)

如果我了解您的问题,您可以使用点击和焦点事件来更新z-index。只要div中的子元素获得焦点,焦点就会触发。

$("div").draggable(
    {start:updateContent}
);
$("div").click(updateContent);
$("div").focus(updateContent);

function updateContent()
{
    $("div").css("z-index", 1);
   $(this).css("z-index",2);
}

示例小提琴:http://jsfiddle.net/Cwp2e/14/

答案 1 :(得分:1)

我想到的一件事 - 您是否研究过可拖动的代码?至少它与click和mouse事件相关的部分可能值得检查。

如果在其中的任何地方都有preventDefault()函数,除了自己将事件绑定到父DIV的每个子元素并以此方式控制父元素之外,您可能无法执行任何其他操作。