0

我有一个动态创建的 jQuery 模态对话框:

 $("#body").append(("<div class=openDialog id= newdialog><div id=dialogbody></div></div>"));
$('#newdialog').dialog(
   {
       autoOpen: false,
       dialogClass: "no-close",
       modal: true,
       width: 400,
       height: 375,
       resizable: false,
       closeOnEscape: false
   });

在此之后,我正在渲染此对话框的部分视图

$('#newdialog').dialog('open');
    $.ajax(
                {
                    type: "POST",
                    url: "/controller/Add",
                    success: function (data) {
                        $('#dialogbody').html(data);
                    }
                });

但是,当我尝试使用以下内容关闭此对话框时,它并没有关闭:

$('#newdialog').dialog('close');

所以我尝试了以下方法,它正在关闭:

$('#newdialog').parent('div').remove();
$('#newdialog').closest('.div').remove();
$("#newdialog").dialog('destroy').remove();

但在此之后,父页面控件将不可编辑。

如果我删除

closeOnEscape: false

关闭后我再次按 ESC 它将是可编辑的...

有人有任何线索/建议来克服这个问题吗?

4

1 回答 1

0

我有一个替代解决方案。

1.而不是一直创建动态div放置一个div,如果它不存在下一次​​创建它。和

$(文档).ready(函数 () {

     $("#btnCreate").click(function () {
         if ($('#newdialog).length == 0) {
             alert('missing');
             $("#body").append("<div id=newdialog title=Add Product style=overflow: hidden;background-color:Yellow;border-bottom-width:5;background-color:Red></div>");
         }
         InitializeDialog($("#newdialog"));

         $("#newdialog").dialog("open");
     });



     //Method to Initialize the DialogBox
     function InitializeDialog($element) {


         $element.dialog({
             autoOpen: false,
             width: 400,
             resizable: true,
             draggable: true,
             title: "Product Operation",
             model: true,

             closeOnEscape: false,
             open: function (event, ui) {
                 //Load the Partial View Here using Controller and Action
                 $element.load('/Prodcontroller/AddProduct');
             },

             close: function () {
                 $(this).dialog('close');
             }

         });

     }
 });");

和关闭时间

$('#departmentdialog').dialog('close');

$('#newdialog).parent('div').remove();
$('#newdialog).closest('.div').remove();

这对我有用......谢谢每一个人

于 2013-07-27T17:24:38.360 回答