私はAJAX全体に比較的慣れておらず、現在、モーダルボックスを開き、要求されたコンテンツをそのボックスにロードするスクリプトを編集しています。私は次のJavascriptを持っています
jQuery(document).ready(function($){
$('a[name=modal]').click(function(e) {
e.preventDefault();
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});
$('#mask').fadeTo(600,0.75);
var load_page = $(this).attr('ajax');
//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();
// Set the loading HTML to be displayed
var loadingHTML = '<center><img src="_img/progress_bar.gif"/></center>';
//Set the loading bar
$('#placeholder').html(loadingHTML).fadeTo(600,1);
$('#placeholder').css('top', winH/2-$('#placeholder').height()/2);
$('#placeholder').css('left', winW/2-$('#placeholder').width()/2);
// Ajax load
$('#ajax').load('_content/' + load_page + '.php', null, function(){
$('#ajax').css('top', winH/2-$('#ajax').height()/2);
$('#ajax').css('left', winW/2-$('#ajax').width()/2);
$('#ajax').fadeTo(600,1);
});
});
$('.window .close').click(function (e) {
e.preventDefault();
$('#mask, #box, #ajax').hide();
});
//if mask is clicked
$('#mask').click(function () {
$(this).hide();
$('#ajax, #placeholder').hide();
});
});
また、次のHTML、
<div id="mask"></div>
<div id="placeholder"></div>
<div id="ajax"></div>
私のCSSも
#mask
{
position: absolute;
left: 0;
top: 0;
opacity: 0;
z-index: 9000;
background: url("../_img/mask.png") repeat;
display: none;
overflow: hidden;
}
#placeholder
{
overflow: hidden;
opacity: 0;
position: absolute;
z-index: 9050;
overflow: hidden;
}
#ajax
{
position: absolute;
z-index: 9100;
overflow: hidden;
opacity: 0;
display: none;
}
スクリプトはロードバーを表示しますが、AJAXコンテンツを含むモーダルボックスを表示しません。ページはローカルホストに存在します。前もって感謝します。