如何在关闭时删除所有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。 这样重复无关紧要。