6

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

<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 或带有 jQ​​uery 的 JS)具有最高 z-index 值的 DIV。在上述情况下,我想选择第一个,因为它的 z-index 5 高于所有其他人的 z-index。

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

4

4 回答 4

2

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

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

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

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

这应该可以很好地指示您在任意数量的 jQuery 回调参数中可用的内容。

于 2010-01-05T11:48:14.587 回答
0

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

于 2010-01-05T11:33:10.113 回答
0

在您的位置,我只需在每个 div 上附加事件 onclick。我认为 Javascript 或 jQuery 将自动考虑 zindex 信息,您将在您单击的 DIV 上获得事件。

于 2010-01-05T11:36:56.197 回答
0

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

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

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

谢谢大家的回答!

于 2010-01-05T11:52:47.903 回答