jquery - 使用 jQuery.live 获取最高 Z-Index 值以确保考虑所有元素

标签 jquery css z-index

冒着被告知这是一个重复问题的风险,我试图找出如何获得页面上所有 div 的最高 z-Index 值,包括那些由 jQuery 创建的 div。

情况是,我有一个 toolTip div,它位于页面顶部,由 jQuery 基于触发元素填充 onMouseover 或 onClick。

我有一个隐藏的 div,调用元素的 onClick 显示在灯箱样式窗口中,jQuery 为其指定了 z-Index。我需要能够从此 div 中的元素触发我的 onMouseover 工具提示,但它目前显示在它后面。

显然我可以手动完成,但为了将来使用,我认为计算方法会更好......

谷歌搜索像往常一样把我带到这篇文章 How can you figure out the highest z-index in your document?

我从中找到的

function findHighestZIndex(elem) {
    var elems = document.getElementsByTagName(elem);
    var highest = 0;
    for (var i = 0; i < elems.length; i++) {
        var zindex = document.defaultView.getComputedStyle(elems[i], null).getPropertyValue("z-index");
        if ((zindex > highest) && (zindex != 'auto')) {
            highest = zindex;
        }
    }
    return (highest * 1);
}

这适用于通过 CSS 明确设置 z-Indexes 的元素。

但是,不是由 jQuery 显示/填充的 div。

上面的函数忽略了这个模态窗口,大概是因为 z-Index 是通过编程创建的?

我在SO上也找到了这个功能

function getMaxZIndex() {
    var zIndexMax = 0;
    $('div').each(function () {
        if ($(this).css('z-index') > zIndexMax) zIndexMax = $(this).css('z-index');
    });
    return (zIndexMax * 1);
}

但由于某种原因返回 'NAN'

我想我需要在这里的某个地方使用“实时”,但不确定如何去做。

再一次,如果有人认为这是一个重复的问题,我深表歉意,但我在这里找到的问题并没有完全回答这个问题。

最佳答案

.css('z-index') 返回 string

'100' > 0 //true
'auto' > '100' //true

因此 zIndexMax 很可能是 'auto''auto' * 1NaN

试试这个

function getMaxZIndex() {
    var zIndexMax = 0;
    $('div').each(function () {
        var z = parseInt($(this).css('z-index'));
        if (z > zIndexMax) zIndexMax = z;
    });
    return zIndexMax;
}

关于jquery - 使用 jQuery.live 获取最高 Z-Index 值以确保考虑所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8450382/

相关文章:

jquery ui.progressbar label - 更改背景传递字母上的文本颜色

javascript - 使用 .toFixed() 舍入指数小数

html - 带有表单的水平堆栈

html - 表格中覆盖 div 的适当缩放

javascript - JQVMap - Ajax 悬停调用,标签问题

jquery - Tipsy jQuery Tooltip Plugin - 是否可以使用多种样式?

css - 为什么在 Windows Phone 7 的 IE 中可点击具有较低 z-index 的 div 中的链接 anchor ?

javascript - 尽管有 z-index,但动画 DIV 隐藏的跨度文本

css - 如何使用 CSS 的 will-change 属性?

html - 输入宽度为 100% - 20px