небольшая проблема с JavaScript - PullRequest
0 голосов
/ 24 марта 2010

У меня есть эта маленькая функция, которая открывает модальные окна типа вещи. Проблема в том, что он не работает на IE. Все остальные браузеры работают нормально, но в IE ничего не происходит:

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?

1 Ответ

0 голосов
/ 24 марта 2010

Я вставил ваш код в этот 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 является (и / или должно быть) class в вашем HTML, а не id?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...