2012-12-18 53 views
0

我有<div id='A'>中,我有一些信息</div>保持在格UI对话框的内容关闭后对话框

然后我火命令

$('#A').dialog(); 

做的事情后,我关闭对话框

$('#A').dialog('close'); 

它关闭我的所有信息。但我希望它关闭,但我的信息保留在DIV中。

问题是,在关闭时,ui对话框也会删除整个div,因此关闭后没有任何内容。

+0

它不应该删除div。它会将它附加到body并从它的原始位置移除,但是如果您运行$('#A')。dialog('open');它应该再次打开。你有没有附加到关闭事件或其他可能会修改该div的其他内容? – Syon

+0

我通过Ajax更新div的内容。 – David

+0

@Syon你对第二个dialog.open是正确的。我打开它并打开。但如果是这样的话,为什么我在关闭它后看不到它? – David

回答

1

'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的内容然后将其放回页面的内容。我用摧毁而不是关闭显示它回到页面。

http://jsfiddle.net/jvSb3/3/

在拨弄我用一个文本框来改变div的内容,同时它在对话形式。然后在关闭处理程序中,我销毁对话框,然后再次使其可见。

+0

破坏和显示块解决了这个问题,谢谢;) – David

+0

欢迎。我很高兴它的工作。 –

相关问题