我试图使用jquery创建一个简单的popover效果,类似于iOS中的popover。代码在ff,safari,chrome和ie9中运行得非常好,但是弹出窗口不会出现在ie6-8中。
我正在使用jquery 1.5.1,以及html5shiv,以便我可以使用html5标签:
<!--[if lt IE 9]>
<script src="html5shiv.js"></script>
<![endif]-->
<script defer src="jquery.min.js"></script>
<script defer src="effects.js"></script>
相关的javascript代码是:
$(document).ready(function() {
$('#button').live('click', function($e) {
$e.preventDefault();
$('#popover').fadeToggle('fast');
if ($('#button').hasClass('active')) {
$('#button').removeClass('active');
} else {
$('#button').addClass('active');
}
});
});
popover的相关CSS代码是:
#popover {
display: none;
position: absolute;
top: 43px;
left: 5px;
z-index: 5000000;
}
IE单击按钮时正确添加和删除类。此外,当我将popover的CSS更改为display:block时,弹出窗口会在IE中加载页面时正确显示。但是,出于某种原因,IE似乎无法切换div的显示。我已经尝试将javascript代码放在页面底部,添加type =“text / javascript”,将fadeToggle更改为简单显示,使用getElementById更改popover的css,我认为我见过的所有其他解决方案这里涉及IE和jquery,click(),live()和/或z-index。
有什么想法吗?
答案 0 :(得分:0)
我过去使用过的一个解决方案是在click事件中添加页面上的元素。例如,在您的情况下:
$('#button')。live('click',function($ e){ $ e.preventDefault(); $(本)。之后( ''); ... });