2010-03-24 47 views
0

我有这个打开模式窗口类事物的小函数。问题是,它不适用于IE浏览器。所有其他浏览器的罚款,但在IE浏览器上,没有任何事情发生:小javascript问题

function showOverlayBox() { 
if(isOpen == false) return; 
$('#full').css({ 
    display:'block', 
    left: ($(window).width() - $('#full').width())/2, 
    top: ($(window).height() - $('#full').height())/2, 
    position:'absolute' 
}); 
$('.BgCover').css({ 
    display:'block', 
    width: $(window).width(), 
    height: $(window).height() 
}); 
} 

function doOverlayOpen() { 
isOpen = true; 
showOverlayBox(); 
$('.BgCover').css({opacity:0}).animate({opacity:0.8}); 
return false; 
} 

function doOverlayClose() { 
$('#full').css('display', 'none'); 
$('.BgCover').animate({opacity:0}, null, null, function() { $(this).hide(); }); 
} 

也许是关于isOpen == false?

+0

在'if'条件前使用警告框,看看它是什么.. – 2010-03-24 11:08:28

+0

这些由$(id)引用的元素被定义。也许IE浏览器没有看到它们? – 2010-03-24 11:08:45

回答

0

我已经粘贴您的代码到这个HTML片段:

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
</head> 
<body> 
<div class="BgCover" style="background-color: red; display:none"></div> 
<div id="full" style="display:none; background-color: yellow">Hello!</div> 
<script type="text/javascript"> 

<!-- Your code here --> 

$("<span>Do it</span>").click(doOverlayOpen).insertAfter($("#full")); 
</script> 
</body> 
</html> 

这个工程预期在Firefox 在IE7。所以在你没有向我们展示的部分肯定有一些东西。一个想法:你确定BgCover是(和/或应该是)你的HTML中的class,而不是id