我<div id='A'>
有一些信息</div>
然后我发射命令
$('#A').dialog();
做完某事后我关闭对话框
$('#A').dialog('close');
它以我的所有信息关闭。但我希望它关闭,但我的信息仍保留在 DIV 中。
问题是在关闭时,ui对话框也会删除整个div,所以关闭后什么都没有了。
'close' 方法不会像所指出的那样删除 div,它确实将其设置为 'display:none' 并且一旦它是一个对话框,选择器就不能按预期工作;至少这是我发现的。使用 control+f 找不到它,因为它没有显示出来。如果您使用 Firebug 或开发人员工具查看该页面,您会发现它仍然存在。
试试这个:
var theA = $('#A');
theA.dialog();
//do ajax stuff here;
//some where else instead of closing the dialog
theA.dialog('destroy'); //returns the div to its pre-dialog state
theA.css('display','block');
我做了一个小提琴来展示我做了什么来看看这是否有效。我使用了一个锁定标志来确保我在关闭的同时没有“对话”。但我能够按照您所说的更改 div 的内容,然后将其放回页面。我使用破坏而不是关闭来显示它回到页面。
在小提琴中,我使用了一个文本框来更改对话框形式的 div 的内容。然后在关闭处理程序中,我销毁对话框,然后再次使其可见。