【问题标题】:jquery Dialog is not closingjquery 对话框没有关闭
【发布时间】:2013-07-28 01:24:38
【问题描述】:

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

任何人有任何线索/建议来解决这个问题?

【问题讨论】:

  • @Matt 我刚刚编辑对话框时删除了逗号
  • 您是否在开发工具的控制台部分看到错误
  • @Scott,没有逗号[closeOnEscape: false] 也是一样的......
  • @Sushanth,我在通过 ESC 关闭后都通过开发工具进行了检查[我可以得到一个可编辑的页面],没有它,HTML 没有任何区别
  • 您使用的是什么浏览器。因为我刚在chrome上试过。它工作正常。

标签: jquery


【解决方案1】:

我有一个替代解决方案。

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').dialog('close');

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2023-04-10
    相关资源
    最近更新 更多