Javascript 带有load的jQuery对话框在其自身之后不会清理

Javascript 带有load的jQuery对话框在其自身之后不会清理,javascript,jquery,dialog,Javascript,Jquery,Dialog,我很确定这是在什么地方讨论过的,但我似乎在什么地方都找不到。如果有人能给我指出正确的方向,我将不胜感激 我已经设置了一个对话框,打开和关闭都很好。我需要在其中加载动态内容,因此我使用以下方法: $('#dialog').load("somepage.php?document=1"); 这个加载正确,一切都很好,除了关闭对话框,然后用一些不同的查询字符串(例如document=2)打开它,我可以看到DOM中仍然加载document=1的内容 当加载的页面中有javascript函数时,这会导致问

我很确定这是在什么地方讨论过的,但我似乎在什么地方都找不到。如果有人能给我指出正确的方向,我将不胜感激

我已经设置了一个对话框,打开和关闭都很好。我需要在其中加载动态内容,因此我使用以下方法:

$('#dialog').load("somepage.php?document=1");
这个加载正确,一切都很好,除了关闭对话框,然后用一些不同的查询字符串(例如document=2)打开它,我可以看到DOM中仍然加载document=1的内容

当加载的页面中有javascript函数时,这会导致问题,因为它会执行两次。(好吧,我加载文档的次数,所以它几乎不可用)

我已尝试清除该对话框:

$('#dialog').html("") 
但这没有多大帮助


有人知道什么能帮上忙吗?

与其关闭对话框,不如销毁它:

$('#dialog').dialog("destroy");
这会将对话框清除回其初始状态:


如果您只想加载页面的
部分,您可以始终执行以下操作:假设我只想要一个特定的
div

$('#dialog').load("somepage.php?document=1 #myDiv");
此外,我不知道你正在用什么关闭你的
#对话框
,但是如果它是一个id为myButton的东西,你应该:

$(document).on("click", "#myButton", function(e) {
    // To keep div within DOM and empty
    $("#dialog").empty();
    // To get rid of div (you would have to re-append #dialog every time)
    $("#dialog").remove();
});
尽管如此,
.load()
实际上并不执行加载页面中的任何脚本。如果要使用
$.post()
$.get()
,您可以自己去掉
标记


祝你好运

谢谢你,但是这并没有真正的帮助。我已经清除、销毁了对话框,然后又将其绑定,但似乎javascript函数仍然存在于某个地方,但是我无法用firebug找到它。/Ah,现在我看到了您正在做的事情-将完整页面内容加载到目标div中,并且这些目标页面中烘焙了脚本。我的建议是更改目标页面并加载它们分别包含的脚本。无需多次加载它们,这会浪费带宽并导致各种问题。或者,如果您无法更改这些页面,请参阅关于清除这些页面的讨论:。嘿,完全正确。我可以看到很多脚本仍然加载在FireBug中,即使div的DOM被破坏、为空或者其他什么。脚本仍然存在。我会看看你贴的问题!谢谢你抽出时间,我很感激。