0

テスト サイトはhttp://kinnill.com/dev/eisatechにあります。これは非常にぎこちなく聞こえるかもしれませんが、「About」リンクと「Contact」リンクから開く 2 つの個別のモーダル ダイアログ ウィンドウがあります。「概要」ダイアログは完全に正常に開閉しますが、「連絡先」ダイアログは、「概要」が読み込まれていない場合にのみモーダル オーバーレイを読み込みます。firebug でサイトを見たところ、「連絡先」ダイアログを 2 番目に読み込もうとすると、.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 は「概要」ダイアログです。追加の 'close' 呼び出しは、[バージョン情報] ダイアログに [連絡先] ダイアログを開くためのリンクがあるためです。

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 に答える