在我的主页上,我有一种可以打开和关闭的侧面板。侧面板通过jQuery的加载功能加载到主页面上的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?或者有更好的方法来做我想做的事情吗?
答案 0 :(得分:4)
请完整查看相同的帖子jquery: How to completely remove a dialog on close
$(this).dialog('destroy').remove()
答案 1 :(得分:3)
jQueryUI实际上在创建对话框时将div移动到DOM中的其他位置,从而将其从原始容器中移出。因此,如果您尝试在其原始容器上调用empty()
,则无效。
您应该在侧面板关闭时删除对话框div,而不是在对话框关闭时删除(如果对话框从未打开过,该怎么办)。
答案 2 :(得分:1)
您也必须将其从DOM中删除。请在close
事件中尝试此操作:
$('#myDialog').dialog("destroy").remove();
答案 3 :(得分:1)
当你关闭对话框然后它只关闭框但内容不会清除..如果你使用
$(this).dialog('destroy').remove()
方法然后它将从DOM中删除对话框,因此您必须自己清除所有内容..或者当您重新打开对话框时,您必须清除所有数据
这就是......试试......
答案 4 :(得分:0)
$("#myDialog").dialog("close")
不起作用吗?
也应该$('#myDialog').dialog("destroy").remove()
。
说不清楚为什么不使用Class而不是ID。重复这种方式并不重要。