jquery Dialog没有关闭

时间:2013-07-26 20:29:47

标签: jquery

我有一个动态创建的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将可编辑...

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

1 个答案:

答案 0 :(得分:0)

我有另一种解决方案。

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

$(document).ready(function(){

     $("#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')对话框( '关闭');

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

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