Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么加载动态对话框后找不到div标记?_Jquery_Dialog - Fatal编程技术网

Jquery 为什么加载动态对话框后找不到div标记?

Jquery 为什么加载动态对话框后找不到div标记?,jquery,dialog,Jquery,Dialog,我使用jQueryUI将htm文件动态加载到对话框中。 从这个对话框中,我通过加载另一个htm文件创建另一个对话框。 加载完成后,我会动态地将一些html代码插入#test div标记中。 这在我第一次打开两个对话框时效果很好,但是如果我关闭它们并 然后重新打开,代码不会插入。如果我关闭第二个对话框,然后再次打开,它现在又可以正常工作了。所以我的问题是:为什么jquery不能第二次找到div id 以下是我的测试代码: Main.js: function opendialog1() { $(

我使用jQueryUI将htm文件动态加载到对话框中。 从这个对话框中,我通过加载另一个htm文件创建另一个对话框。 加载完成后,我会动态地将一些html代码插入#test div标记中。 这在我第一次打开两个对话框时效果很好,但是如果我关闭它们并 然后重新打开,代码不会插入。如果我关闭第二个对话框,然后再次打开,它现在又可以正常工作了。所以我的问题是:为什么jquery不能第二次找到div id

以下是我的测试代码:

Main.js:

function opendialog1()
{
  $("#popup1").empty().load("dialog1.htm").dialog({title:"Dialog 1",width:300, height:200});
}

function opendialog2()
{
  $("#popup2").empty().load("dialog2.htm",Dialog2Loaded).dialog({title:"Dialog 2",width:300, height:200});
}

function Dialog2Loaded()
{
  var html="This is a test";
  $("#test").append(html); 
}
index.html:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0   Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <link type="text/css" href="css/custom-theme/jquery-ui-1.9.0.custom.css" rel="stylesheet" />

    <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.9.0.custom.min.js"></script>
    <script type="text/javascript" src="Main.js"></script>
    </head>

    <body>

    <a href="#" onclick="opendialog1();">Open Dialog 1</a>

    <div id="popup1"></div>

    </body>
    </html>

Dialog1.htm

  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
    <html><head>
    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"> 
    </head>

    <body>

    <a href="#" onclick="opendialog2();">Open Dialog 2</a>

    <div id="popup2"></div>

    </body></html>

Dialog2.htm:

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
    <html><head>
    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"> 
    </head>

    <body>

    <div id="test"></div>

    </body></html>


关闭对话框时,将删除div get。使用Chrome的dev-toll(或FireBug)检查DOM,看看在close()调用后它是如何变化的。

我用FireBug检查过,对话框关闭后在DOM中留下了很多垃圾。我确实添加了$(this.remove();在对话框上关闭,但由于jQuery UI 1.9.0中的错误,该对话框无法工作。如果我从关闭对话框中删除隐藏效果,关闭事件将触发,DOM将被清除,一切正常。