在this site Firefox上显示jQuery对话框(等待)但在IE8中它没有显示jQuery对话框(等待)
$("#wait").dialog({resizable:false,width:100,modal:true,height:100 });
$("#wait").siblings(".ui-dialog-titlebar").hide();
var certification = "";
var address;
var idCompany="821225021";
for (var i = 0; i < 10; i++)
{
idCompany =idCompany + i.toString();
idCompany=idCompany + ".png";
address="../Image/CertificationCompany/"+idCompany;
if (UrlExists(address))
{
certification +="<a>";
certification +="<img style='width:40px;height:40px;' src='../Image/CertificationCompany/" + idCompany + "' />";
certification +="</a>";
}
idCompany="821225021";
}
$("#contentCertification").html(certification);
$("#wait").dialog('close');
答案 0 :(得分:0)
同样的事情发生在Chrome中,但我认为这可能是一个速度问题,因为浏览器太快,显示然后隐藏对话框。
如果您在Chrome中调试并逐步执行JavaScript并在创建dialog()
时中断,则会按预期显示。
您需要在最后一次XMLHTTPRequest完成后关闭对话框,您可以通过执行XMLHTTPRequest对象的readyState
来执行此操作(请参阅MSDN和MDN文档)。< / p>
也就是说,由于您已经在使用jQuery,我强烈建议您对所有请求使用jQuery .get()
方法,这会在执行异步HTTP请求时混淆浏览器之间的差异(并且很多其他浏览器差异!)。然后,您将获得符合跨浏览器的代码和一个干净的回调机制,例如:
for (var i = 0; i < 10; i++) {
address="../Image/CertificationCompany/"+ idCompany + i.toString() + ".png";
$.get(address, function(data) {
var certification = $('<a/>')
.append('<img style="width:40px;height:40px;" src="' + address + '"/>');
$("#contentCertification").append(certification);
if ($('#contentCertification a').length == 10) {
$("#wait").dialog('close');
}
});
}