添加1到z-index onclick以获得IE兼容性

时间:2011-11-17 14:19:31

标签: javascript jquery raphael

我正在使用Raphael整理地图。到目前为止我在Chrome和Firefox中的作用,但我怎样才能使它与IE兼容?这是我的测试地图的链接。 http://www.imsmfg.com/imsepracks/sales-reps.php

这是javascript:

st[0].onclick = function () {       
    var maxZ = Math.max.apply(null,$.map($("#paper > *"), function(e,n){
           if($(e).css("position")=="absolute")
                return parseInt($(e).css("z-Index"))||1 ;
           })
    );

    document.getElementById(current).style.display = "block";
    document.getElementById(current).style.zIndex = maxZ+1;

    current = state;
};

2 个答案:

答案 0 :(得分:0)

我在IE8上的IE控制台中出错: Object不支持此属性或方法 - imsep.js中的第31行

   $(function() {
            $("#accordion").accordion({
                autoHeight: false,
                navigation: true,
                active: false,
                collapsible: true
            });
        });

从我所看到的,问题出在于设置display:block;所以它可能与这个js错误有关。

编辑: 当我通过ie dom检查器手动设置显示块时,我看到div。

EDIT2: 我在你的页面上找不到#acordord,你可能想要做类似的事情:

$(function() {
      if($("#accordion").length > 0)
            $("#accordion").accordion({
                autoHeight: false,
                navigation: true,
                active: false,
                collapsible: true
            });
    });

答案 1 :(得分:0)

我可以告诉你的一点是,在IE中,标记中出现较低的元素(但不是同一父元素的子元素)将始终具有更高的z-index。 有两种可能的解决方案:

1)将代码重新编写为不依赖于z-index(absolute定位元素应始终显示在relativestatic之上

2)将您定位的div物理移动到文档正文的底部。

此外,您的maxZ计算看起来很笨拙。你确定max()实际上可以使用任意数组值(即元素数超过2)吗?在IE中,更具体地说。

如果您需要更多帮助,请发布您的标记。