【发布时间】:2012-03-22 14:38:50
【问题描述】:
我有以下 HTML:
<div id="loading-overlay">
<div id="loading-overlay-background"></div>
<div id="loading-overlay-content">
Processing...
<br />
<img src="@Url.Content("~/Content/img/ajax-loader.gif")" title="" alt="Please Wait" />
</div>
</div>
还有 CSS:
#loading-overlay
{
position:fixed;
width:100%;
height:100%;
top:0;
left:0;
z-index:5000;
}
#loading-overlay-background
{
position:relative;
width:100%;
height:100%;
top:0;
left:0;
background-color:#000;
opacity:0.5;
filter:alpha(opacity=50);
z-index:5001;
}
#loading-overlay-content
{
position:fixed;
top:25%;
left:50%;
margin-left:-150px;
margin-top:-20px;
height:40px;
width:300px;
color:#fff;
text-align:center;
z-index:15002;
}
这里有一些 JavaScript (jQuery):
$.ajax({
url: 'controller/action',
beforeSend: function () {
$('#loading-overlay').show();
},
success: function (data, textStatus, jqXHR) {
},
error: function (xhr) {
},
complete: function () {
$('#loading-overlay').hide();
}
});
为什么我的“加载覆盖”在任何 AJAX 调用的任何版本的 IE 中都没有显示?
编辑:是的,它在 FireFox 和 Chrome 中运行良好。这些 AJAX 调用可能需要几分之一秒到大约 20 秒才能完成。确实会显示警报消息,但不会显示 HTML。
【问题讨论】:
-
AJAX 调用需要多长时间才能完成?如果它们足够快,
#loading-overlay元素将显示然后再次隐藏并且可能不会被注意到。 -
它在其他浏览器中是否有效?
-
我会说 ajax 正在快速完成。在
show()调用后发出警报,看看它是否显示 -
我认为你的 ajax 执行得很快!在调用 .hide() 之前尝试执行 alert() 也许这会起作用。或者您可以简单地删除 .hide() 然后查看它是否显示
-
查看http://jsfiddle.net/yzZSU/。在 IE 9 和兼容性中都有效。我猜我们需要访问您的页面才能对此进行全面测试。
标签: javascript jquery html css internet-explorer