2011-08-04 309 views
1

this site Firefox中显示的jQuery对话框(等待),但在IE8它不显示jQuery的对话框(等待)显示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

同样的事情发生在Chrome,但我认为这可能是一个速度问题,浏览器也是也是快速显示然后隐藏对话框。

如果您在Chrome中调试并逐步浏览JavaScript并在创建dialog()时突然中断,则它会按预期显示。

您需要的最后的XMLHTTPRequest结束后关闭对话框,你可以通过作用于XMLHttpRequest对象的readyState做到这一点(见MSDNMDN文档)。

这就是说,因为你已经在使用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'); 
     } 
    }); 
} 
+0

如何解决 还有另一种方式来展现等待 – ashkufaraz

+0

我不understand.please写的样本 – ashkufaraz

+0

添加一个更好的例子,但这是目前未经测试 – andyb