带有动态加载表单的JQuery UI对话框在IE8中给出了问题

时间:2013-11-16 07:05:59

标签: jquery user-interface internet-explorer-8 dialog

此问题仅发生在IE8中,否则在Chrome,FF等中工作正常。问题是我试图通过根据需要加载HTML文件将大型项目分解为更小的模块。其中一个HTML文件有一个HTML表单作为其内容的对话框。以下是父文件中的代码:

   $('#login').click(function(){ 
        $('#login_dialog').load('html/login_dialog.html', function() {
              $("#login_dialog").dialog("open");
        });
   });

对话框代码位于login_dialog.html文件中。点击后,它会加载文件并完成剩下的工作。非常简单,除IE8外,它按预期工作。 IE8中报告的错误是

cannot call methods on dialog prior to initialization; attempted to call method 'open'

现在,如果将整个login_dialog.html文件复制到父文件中而不是动态加载,那么即使在IE8中也是如此。有关修复此问题的任何想法我尝试了dialog_var = $(#login_dialog).dialog({....});然后按照本论坛另一篇文章的建议继续使用dialog_var.dialog(“open”)。那也行不通。

1 个答案:

答案 0 :(得分:1)

IE通常执行后续语句的速度太快

尝试

$('#login').click(function(){ 
    $('#login_dialog').load('html/login_dialog.html', function() {
      setTimeout(function() {
          $("#login_dialog").dialog("open");
       },100);
    });
});