Javascript 将1添加到z-index onclick以实现IE兼容性
我正在用拉斐尔绘制一张地图。到目前为止,我已经在Chrome和Firefox中使用了,但是我如何使它与IE兼容呢?这是我的测试地图的链接 下面是javascript:Javascript 将1添加到z-index onclick以实现IE兼容性,javascript,jquery,raphael,Javascript,Jquery,Raphael,我正在用拉斐尔绘制一张地图。到目前为止,我已经在Chrome和Firefox中使用了,但是我如何使它与IE兼容呢?这是我的测试地图的链接 下面是javascript: st[0].onclick = function () { var maxZ = Math.max.apply(null,$.map($("#paper > *"), function(e,n){ if($(e).css("position")=="absolute")
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;
};
我在IE8上的IE控制台中出错: 对象不支持此属性或方法-imsep.js中的第31行
$(function() {
$("#accordion").accordion({
autoHeight: false,
navigation: true,
active: false,
collapsible: true
});
});
从我所看到的,问题在于设置显示:块;所以它可能与这个js错误有关
编辑:
当我通过ie dom检查器手动设置显示块时,我看到了div
编辑2:
我在您的页面上找不到手风琴,您可能需要执行以下操作:
$(function() {
if($("#accordion").length > 0)
$("#accordion").accordion({
autoHeight: false,
navigation: true,
active: false,
collapsible: true
});
});
我可以告诉你的一件事是,在IE中,标记中出现的较低的元素(但不是同一父元素的子元素)将始终具有较高的z索引。 有两种可能的解决方案: 1) 重新编写代码,使其不依赖于z索引(
绝对
定位元素应始终显示在相对
或静态
元素的上方)
2) 实际移动文档正文底部的已定位div
此外,您的maxZ
计算看起来既笨拙又混乱。您确定max()
实际上可以处理任意值数组(即元素数超过2个)吗?在IE中,更具体地说
如果您需要更多帮助,请发布您的标记。为什么目前它与IE不兼容?您遇到了什么问题/错误?在IE中,包含我的信息的div没有显示onclick。您所说的div是指包含联系信息的div。对吧?对!我使用的css选择器与IE兼容,因此我不知道脚本中没有显示的其他错误。只是调试了手风琴,并更改了一些其他东西以在需要时使用。这是有用的,但不是我当前问题的答案。谢谢你!我不再在ie中发现错误,但我仍然认为问题在于
document.getElementById(当前).style.display='block'
在这一行之前尝试alert(当前)
,看看它是否正确。好的。警报(当前)不适用于IE,但适用于Firefox和Chrome。“getElementById”在IE中不起作用,有没有其他方法可以使用?它在IE中起作用,但在设置状态
和当前状态
方面有很多不同之处。可能(但我非常不确定)问题在于绑定mouseover/mouseout事件时,可能它们没有触发。我会在你更改/设置current
的任何地方放置一些警报,以查找实际的bug。我的意思是,getElementById在ie中工作,但是current
可能仍然为空,而不是使用z索引,我可以使用jQuery在divs中切换。但现在我的问题是如何让它与拉斐尔合作。下面是一个有效的测试页面: