Javascript 选择z索引最高的DIV
示例代码,以便我开始解释此问题:Javascript 选择z索引最高的DIV,javascript,jquery,html,jquery-ui,z-index,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> 5 2. 1. 4. 3. (z
<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>
5
2.
1.
4.
3.
(z-索引值不重要,它们的顺序更不重要。只是示例代码)
问题:我想选择(使用CSS或jQuery的JS)z索引值最高的DIV。在上面的例子中,我想选择第一个,因为它的z-index 5比其他所有的z-index都高
有办法做到这一点吗?
额外信息:我正在使用jQuery+jQuery UI编写一个简单的窗口管理器,z索引由.draggable中的stack选项分配。
我似乎也找不到让jQuery将最后一个拖拽的元素分配给类的方法,所以我选择了z索引最高的方法。需要帮忙吗?谢谢。您可以随时对
jQuery(.yourDivs”).css(“z-index”)进行测试
一旦您在所有div上添加了类。在您的位置上,我只需在每个div上单击一次即可附加事件。我认为Javascript或jQuery将自动考虑zindex信息,您将在您单击的div上准确地获得事件。我确信您可以使用stop事件来访问最近的div拖动的项目,即:
$('.selector').draggable({
stop: function(event, ui) {
$(event.target).addClass('justDragged');
}
});
如果希望查看绑定到事件的所有函数/变量,可以使用以下命令:
var str = '';
for (i in event) {
str += i + ', ';
}
alert(str);
这应该可以很好地指示您在任何数量的jQuery回调参数中可以使用什么。我刚刚发现.draggable中有一个“开始拖动”事件。我真傻 $("#window-"+id+".staticwindow.stwin").draggable({ ... start: function(e, u){ $(".window").removeClass('active'); $(this).addClass('active'); } }); $(“#窗口-”+id+”.staticwindow.stwin”).draggable({ ... 启动:功能(e、u){ $(“.window”).removeClass('active'); $(this.addClass('active'); } }); 虽然我的这种方法与我最初的问题不再相关,但至少没有循环。我不会接受任何答案,因为这似乎需要一个循环。(尽管我有点倾向于接受zarko的答案,因为它让我思考事件)
谢谢大家的回答 你的意思是我必须循环遍历所有我想要比较z索引的元素,并存储最高的元素?因为我正在编写一个窗口管理器,每次执行拖动时调用它可能有点低效,并且当有很多div时,甚至更低效。是的,这将不是有效的,但是您应该考虑使用单独的数据结构来完成您正在尝试实现的(一个单独的堆栈,跟踪可能发生的事情)。. 使用zindex,我怀疑你会得到一个更好的方法,我应该刷新页面-显然,在这里总会有一个好的答案!(虽然我使用了start而不是stop,它模拟了“窗口化”行为)接受:)