我有一个动态创建的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将可编辑...
任何人都有任何线索/建议来克服这个问题吗?
答案 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();
这对我有用...谢谢每一个人