JQuery UI多个对话框问题
我有动态创建Dialog的function。 有时我需要Modal或Confirm Dialog
所以我创建了Function
function createDialogWithOutClose() { jQuery('#divPopup').dialog('destroy'); var dialog = jQuery('#divPopup').dialog({ autoOpen: false, height: 450, width: 650, modal: true, open: function(event, ui){ jQuery('body').css('overflow','hidden'); } }); jQuery('#divPopup').dialog('open'); }
和
function createConfirmDialog(url,params) { jQuery('#divPopup').dialog('destroy'); var dialog = jQuery('#divPopup').dialog({ autoOpen: false, resizable: false, modal: true, show: "blind", hide: "explode", open: function(event, ui){ jQuery('body').css('overflow','hidden'); }, buttons: { Ok: function() { jQuery( this ).dialog( "close" ); jQuery.ajax({ type: "POST", url: url, data: params }); }, Cancel: function() { jQuery( this ).dialog( "close" ); } } }); jQuery('#divPopup').dialog('open'); }
这里的问题是当我调用这个函数时,它会打开之前打开的Dialog。
我想以前的实例不会被删除。它不会动态创建Dialog
任何解决方案
看看http://docs.jquery.com/UI/Dialog/dialog#method-destroy
jquery:如何在关闭时完全删除对话框
只需使用标志来检查对话状态(关闭/打开)
var Open = false; $('button').click(function () { if (!Open) { Open = true; $(newDiv).dialog({ close: function (event, ui) { Open = false; } }); } else { alert("Close opened dialog first"); } });