【问题标题】:JQuery UI dialog with form loaded dynamically gives problems in IE8动态加载表单的 JQuery UI 对话框在 IE8 中出现问题
【发布时间】:2013-11-16 07:05:58
【问题描述】:

这个问题只发生在 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") 正如本论坛另一篇文章中所建议的那样。那也不起作用。

【问题讨论】:

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


    【解决方案1】:

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

    试试

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

    【讨论】:

    • 尝试增加超时时间但无济于事。报告相同的错误,但您的建议肯定是有帮助的,因为它消除了一种可能性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2011-12-29
    • 2016-10-12
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多