【问题标题】:Jquery UI Dialog Empty On Auto-OpenJquery UI 对话框在自动打开时为空
【发布时间】:2012-09-21 03:19:21
【问题描述】:

我的 jquery 对话框出现了一些奇怪的错误。

当我让它自动打开时,对话框是完全空的。如果我退出对话框然后重新打开(通过标准对话框打开事件),内容就会出现。

jquery 设置:

$("#content_locker").dialog({
autoOpen: true,
modal: true,
height: 600,
width: 800
});

Here you can see the webpage that I am working on(这是一个链接缩短服务)。

对话框 div 从源代码的第 148 行开始:

<div id="content_locker" title="Exclusive Content">

您会看到对话框是空的。如果你退出并点击解锁按钮,正确的 html 就在那里。

有什么想法吗?

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

    由于您的 css 上的这段代码,模态的内容在开头隐藏:

    #content_locker{
        visibility: hidden;
    }
    

    尝试将其更改为:

    #content_locker{
        diaplay: none;
    }
    

    它应该可以解决问题;)

    【讨论】:

    • 谢谢。之前没有注意到这个答案。现在似乎工作正常:)
    【解决方案2】:

    这取决于顺序。如果你使用autoOpen,你应该先填充html内容,然后初始化对话框。 (autoOpen 表示一旦你初始化了对话框,它就会打开。)

    $("#content_locker").html(the_html_content).dialog({
      autoOpen: true,
      modal: true,
      height: 600,
      width: 800
    });
    

    【讨论】:

    • 好的,那我怎样才能确保 html 是第一个呢?
    • @user1019588 这取决于你,你应该在对话框打开之前先创建内容。这个源码不是你写的吗? clfls.com/js/dwn.php?id=&x=&s=&sid=&limit=
    • 是的,这是我写的,但我特意把对话框JS从那里拿出来,放在html下面的索引文件中(只是在页面底部)。
    • @user1019588 是的,你需要使用.html()来填充内容,然后,初始化对话框。
    • @user1019588 尝试检查 html 内容的可见性。
    【解决方案3】:

    当您尝试显示对话框时,HTML 似乎还不可用。您是否在 DOM 就绪事件中指定了它..

    试试这个

      $(function() {
        $("#content_locker").dialog({
           autoOpen: true,
           modal: true,
           height: 600,
           width: 800
        });
      });
    

    // 如果这不起作用,请尝试显式显示它 // 通过

      $("#content_locker").show();
    

    【讨论】:

    • 尝试了不同的变体,但没有奏效:/感谢您的努力。
    猜你喜欢
    • 2010-10-30
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多