当autoOpen为false时,jquery-ui对话框中的按钮不显示

时间:2012-10-15 08:01:07

标签: jquery jquery-ui

在将autoOpen设置为false后,我在jquery-ui对话框中显示按钮时遇到问题。

我使用这样的按钮设置对话框。

$(document).ready(function() {
    $("#dialog-form").dialog({
        autoOpen: false,
        modal: true,
        buttons: {
            Ok: function() {
                $(this).dialog("close");
            }
        }
    });
});

点击页面上的其他内容后,我运行此行打开我的对话框。

$("#dialog-form").dialog("open");

但是,对话框不显示任何按钮。我发现如果我设置autoOpen: true,则会在对话框立即打开时显示按钮。如何通过调用打开对话框(即设置autoOpen: false),如何显示按钮?

1 个答案:

答案 0 :(得分:2)

根据API,原始代码也应该起作用: API的一个例子:

....
<script>
$( "#dialog" ).dialog({ autoOpen: false });
$( "#opener" ).click(function() {
    $( "#dialog" ).dialog( "open" );
});
</script>
...

我没有看到代码在文档就绪时初始化...如果代码未在文档准备就绪时初始化,则包含该小部件标签的部分尚未加载,并且该小部件将不会被初始化。调用$( "#dialog-form" ).dialog( "open" );时,将应用新的初始化,因此按钮不会出现。

将您的JS初始代码放在document.ready section

$(function() {

  $("#dialog-form").dialog({
    autoOpen: false,
    modal: true,
    buttons: {
        Ok: function() {
            $(this).dialog("close");
        }
    }
  });

});