选择具有最高z-index的DIV

时间:2010-01-05 11:30:25

标签: javascript jquery html jquery-ui z-index

示例代码,所以我可以开始解释这个问题:

<div style="z-index:5">5</div>
<div style="z-index:2">2</div>
<div style="z-index:1">1</div>
<div style="z-index:4">4</div>
<div style="z-index:3">3</div>

(z-index值无关紧要,它们的顺序,甚至更少。只是示例代码)

问题:我想选择(使用CSS或JS和jQuery)具有最高z-index值的DIV。在上面的例子中,我想选择第一个,因为它的z-index 5高于所有其他的z-index。

有办法做到这一点吗? 额外信息:我正在使用jQuery + jQuery UI编写一个简单窗口管理器,z-index由.draggable中的堆栈选项分配。 我似乎无法找到一种方法让jQuery将最后一个被拖动的元素分配给一个类,所以我将采用最高的z-index方式。有什么帮助吗?感谢。

4 个答案:

答案 0 :(得分:2)

我确信您可以使用停止事件来访问最近拖动的项目,即:

$('.selector').draggable({
   stop: function(event, ui) {
      $(event.target).addClass('justDragged');
   }
});

如果您希望查看绑定到事件的所有函数/变量,可以使用以下命令:

var str = '';
for (i in event) {
    str += i + ', ';
}
alert(str);

这可以很好地说明你在任何数量的jQuery回调参数中可以使用的内容。

答案 1 :(得分:0)

在所有div上添加课程后,您始终可以对jQuery(".yourDivs").css("z-index")进行测试。

答案 2 :(得分:0)

在你的位置,我只需在每个div上附加事件onclick。我想Javascript或jQuery会自动考虑zindex信息,你会在你点击的DIV上得到事件。

答案 3 :(得分:0)

我刚才发现.draggable中有一个'开始拖动'事件。我真傻。

$("#window-"+id+".staticwindow.stwin").draggable({
...
    start: function(e, u){
        $(".window").removeClass('active');
        $(this).addClass('active');
    }
});

虽然我的这种方法不再与我原来的问题有关,但至少没有循环。我不会接受任何答案,因为这似乎需要一个循环。 (虽然我有点倾向于接受zarko-o的回答,因为它引导我思考事件)

感谢大家的回答!