Содержимое внутри Popup Modal не отображается
Я использую это руководство для показа всплывающего модального окна при загрузке страницы. По какой-то причине оно не отображает содержимое и изображение внутри модального окна.
Код, над которым я работаю, находится на jsFiddle
Я хочу простое модальное всплывающее окно, в котором я могу показать сообщение в форме изображения в другом измерении, я хочу, чтобы модальное было показано в середине страницы и отрегулировало ширину и высоту в соответствии с изображением. Буду признателен за помощь в этом отношении.
КОД
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Simple JQuery Modal Window from Queness</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script>
$(document).ready(function() {
var id = $(this).attr('href');
//Get the screen height and width
var maskHeight = $(document).height();
var maskWidth = $(window).width();
//Set height and width to mask to fill up the whole screen
$('#mask').css({'width':maskWidth,'height':maskHeight});
//transition effect
$('#mask').fadeIn(1000);
$('#mask').fadeTo("slow",0.8);
//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();
//Set the popup window to center
$(id).css('top', winH/2-$(id).height()/2);
$(id).css('left', winW/2-$(id).width()/2);
//transition effect
$(id).fadeIn(2000);
//if close button is clicked
$('.window .close').click(function (e) {
//Cancel the link behavior
e.preventDefault();
$('#mask, .window').hide();
});
//if mask is clicked
$('#mask').click(function () {
$(this).hide();
$('.window').hide();
});
$(window).resize(function () {
var box = $('#boxes .window');
//Get the screen height and width
var maskHeight = $(document).height();
var maskWidth = $(window).width();
//Set height and width to mask to fill up the whole screen
$('#mask').css({'width':maskWidth,'height':maskHeight});
//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();
//Set the popup window to center
box.css('top', winH/2 - box.height()/2);
box.css('left', winW/2 - box.width()/2);
});
});
</script>
<style>
/* Z-index of #mask must lower than #boxes .window */
#mask {
position:absolute;
z-index:9000;
background-color:#000;
display:none;
}
#boxes .window {
position:fixed;
display:none;
z-index:9999;
padding:20px;
}
/* Customize your modal window here, you can add background image too */
#boxes #dialog {
}
</style>
</head>
<body>
<div id="boxes">
<!-- #customize your modal window here -->
<div id="dialog" class="window">
<b>Testing of Modal Window</b> |
<!-- close button is defined as close class -->
<a href="#" class="close">Close it</a>
<br />
<img src="http://pierre.chachatelier.fr/programmation/images/mozodojo-original-image.jpg" />
</div>
<!-- Do not remove div#mask, because you'll need it to fill the whole screen -->
<div id="mask"></div>
</div>
</body>
</html>
1 ответ
Ошибка этой строки оп
var id = $(this).attr('href');
В document.ready у вас нет атрибута href, но если вы замените его на
var id = "#dialog";
Ты модал будет работать. Смотрите: http://jsfiddle.net/HJUZm/3/
Больше...
Для учебника, который вы читаете, я вижу две возможные ошибки.
Во-первых, в вашем HTML вы отсутствуете
<!-- #dialog is the id of a DIV defined in the code below -->
<a href="#dialog" name="modal">Simple Modal Window</a>
И по какой-то причине вы забыли использовать $('a[name=modal]').click(function(e) {
и вместо этого просто вставьте его в document.ready
Различия между $('a[name=modal]')
это то, что document.ready запускается один раз, когда страница готова, и $('a[name=modal]').click(function(e){...});
срабатывает при каждом нажатии, где name
атрибут modal