我正在使用jQuery UI将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>
答案 0 :(得分:1)
当你关闭对话框时,div被删除了。使用Chrome的开发代码(或FireBug)检查DOM,看看在close()调用后它是如何变化的。