0

因此,测试站点位于http://kinnill.com/dev/eisatech,这听起来非常尴尬,但是从“关于”和“联系”链接打开了两个单独的模式对话框窗口。“关于”对话框可以很好地打开和关闭,但“联系人”对话框仅在“关于”未加载时才加载模式覆盖。我在 firebug 中查看了该站点,似乎如果您尝试第二次加载“联系人”对话框,则永远不会创建 .ui-overlay div。

javascript调用是:

<script type="text/javascript">
$(function() {

    $( "#dialog-form" ).dialog({
        autoOpen: false,
        height: 420,
        width: 661,
        modal: true
    });

    $( ".contact" )
        .click(function() {
            $( "#dialog-form" ).dialog( "open" );
        });

    $( "#dialog-about" ).dialog({
        autoOpen: false,
        height: 420,
        width: 661,
        modal: true
    });

    $( ".about" )
        .click(function() {
            $( "#dialog-about" ).dialog( "open" );
        }); 

    $(".contact")
        .click(function() {
            $("#dialog-about").dialog("close");
        });

});
</script>

#dialog-form 是“联系”对话框,#dialog-about 是“关于”对话框。额外的“关闭”调用是因为“关于”对话框中有一个链接可以打开“联系人”对话框。

4

1 回答 1

2

我会建议一种更好的方法来创建和关闭 jquery 对话框。即使我在同一页面上使用更多对话框时也遇到了同样的问题,但我最终以这种方式解决了:

$( ".about" ).click(function() {
 $("<div />").dialog({
  open: function()
  {
    $(this).html( $( "#dialog-about" ).html());
  },
  height: 420,
  width: 661,
  modal: true,
  close:function()
  {
    $(this).dialog('destroy').remove();
  }
 });
}); 

$( ".contact" ).click(function() {
 $("<div />").dialog({
  open: function()
  {
    $(this).html( $( "#dialog-form" ).html());
  },
  height: 420,
  width: 661,
  modal: true,
  close:function()
  {
    $(this).dialog('destroy').remove();
  }
 });
});

只需即时创建对话框,当您关闭它们时,它们会完全删除而不会发生冲突。

于 2012-10-24T20:27:54.893 回答