如何在关闭时删除所有jQuery UI对话框

在我的主页面上,我有一种可以打开和关闭的侧面板。 侧面板通过jQuery的加载function加载到主页面上的div中。

加载到此侧面板的部分内容是div(myDialog)

当在这个侧面板上点击一个按钮时,我打电话给:

$("#myDialog").dialog({ title : "Permission", width : 300, height : 200, modal : true }); 

现在,如果我关闭侧面板并使用jQuery的空函数清除其内容。 然后我选择all和’view source’jQuery在身体底部添加的html仍然存在。 当我重新打开侧面板并尝试打开相同的对话框时,这会导致问题,因为有两个div(具有重复的ID)。

我试过添加这个,但它不起作用:

 close : function(){ $("#myDialog").dialog("destroy"); } 

如何清除jQuery添加到正文底部的html? 或者有更好的方法来做我想做的事情?

当创建对话框时,jQueryUI实际上将div移动到DOM中的其他位置,从而将其从原始容器中移出。 因此,如果您尝试在其原始容器上调用empty() ,则无效。

您应该在侧面板关闭时删除对话框div,而不是在对话框关闭时删除(如果对话框从未打开,该怎么办)。

请查看完全相同的postjquery:如何在关闭时完全删除对话框

 $(this).dialog('destroy').remove() 

你只需要从DOM中删除它。 在你的close活动中试试这个:

 $('#myDialog').dialog("destroy").remove(); 

当你关闭对话框然后它只关闭框,但内容将不会清除..如果你使用

 $(this).dialog('destroy').remove() 

方法然后它将从DOM中删除对话框,因此您必须自己清除所有内容..或者当您重新打开对话框时,您必须清除所有数据

这就是……试试吧……

$("#myDialog").dialog("close")不起作用吗?

还有$('#myDialog').dialog("destroy").remove()应该是可能的。

如果不这样做,你不能使用Class而不是ID。 这样重复无关紧要。