首次使用后,JQuery对话框将打开2个对话框

时间:2010-09-27 10:08:07

标签: jquery jquery-ui

我正在使用JQuery对话框并以下列方式在其中打开iframe

$('#div1').dialog("destroy");            

if (criteria1== "L") {
    $("#div1").html("<iframe id='dialogFrame1' src='../WebPages/abc.aspx' Height='100%' Width='100%' frameborder='0'></iframe>");
}
else {
    $("#div1").html("<iframe id='dialogFrame2' src='../WebPages/abc1.aspx' Height='100%' Width='100%' frameborder='0'></iframe>");
}

$('#div1').dialog(
  {

      height: 220,
      title: "Title",
      width: 500,
      modal: true,
      beforeclose: function (event, ui) {

          $("#div1").html("");
          $("#div1")[0].innerHTML = "";
      }

  });

$('#div1').parent().appendTo($("form:first"));
$('#div1').dialog('open');

我第一次调用对话框(“打开”)时效果很好。但是,后续调用(没有页面刷新)显示2个对话框,1个是加载控件的正确对话框,另一个是空的活动对话框。

任何想法为什么?

3 个答案:

答案 0 :(得分:1)

添加此选项

autoOpen:false

$('#div1').dialog("destroy");

criteria1="L";
if (criteria1== "L") {
  $("#div1").html("<iframe id='dialogFrame1' src='../WebPages/abc.aspx' Height='100%' Width='100%' frameborder='0'></iframe>");
}
else {
  $("#div1").html("<iframe id='dialogFrame2' src='../WebPages/abc1.aspx' Height='100%' Width='100%' frameborder='0'></iframe>");
}

$('#div1').dialog({
  autoOpen: false, 
  height: 220,
  title: "Title",
  width: 500,
  modal: true,
  beforeclose: function (event, ui) {
    $('#div1').html("");
    $('#div1')[0].innerHTML = "";
  }
});
$('#div1').dialog('open');

$('#div1').parent().appendTo($("form:first"));

答案 1 :(得分:0)

$('#div1').parent().appendTo($("form:first"));

我认为上面的代码复制了内容。更改并测试它。

答案 2 :(得分:0)

这段代码效果很好:在事件'beforeclose'中调用'destroy'。

function ShowAuditingPopup() {
            $("#divAuditingContainer").dialog("destroy");

            $("#divAuditingContainer").dialog({
                 title: 'Lịch sử thay đổi dữ liệu'
                , autoOpen: true
                , width: 'auto'
                , autoOpen: true
                , closeOnEsc: true
                , modal: true
                , open: function (type, data) {
                    $(this).parent().appendTo($("form:first"));
                }
                , beforeclose: function (event, ui) {
                    $("#divAuditingContainer").dialog("destroy");
                }
            });


            $('#divAuditingContainer').dialog('open');
        }