我已经检查了类似的问题,但没有人给我一个解决方案...这就是为什么发布这个问题..所以请给我一个解决方案而不是投票...
我在对话框中加载一个aspx页面。它第一次工作正常,但如果我关闭并重新打开它第二次..它没有被打开..
这是我的default.aspx,我正在处理对话框的脚本
<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
$("#thedialog").dialog({
autoOpen: false,
modal: true,
position: 'center',
width: 900,
open: function() {
$('#thedialog').load("AddDetails.aspx");
}
});
$('#link').click(function() {
$('#thedialog').dialog('open');
});
});
</script>
</head>
<body>
<div id="thedialog" style="display: none; overflow: hidden">
<span id="link" style="color: #88b807; margin-left: 839px;
margin-top: -12px; cursor: pointer; display: block">Create</span>
</div>
</body>
</html>
这是我的AddDetails.aspx
<body>
<form id="form1" runat="server">
<div>
<table id="table" style="border-spacing: 7px 7px; margin-left: 5px">
<tr>
<td>
<span class="SubHeading">Private Space Name </span>
</td>
<td>
<asp:TextBox ID="txt_spacename" runat="server" />
</td>
</tr>
<tr>
<td>
<span class="SubHeading">Private Space Description </span>
</td>
<td>
<asp:TextBox ID="txt_spacedesc" TextMode="MultiLine" runat="server" />
</td>
</tr>
</table>
</div>
</form>
</body>
如果我只是打开一个对话框而不是加载页面,它会被打开但是如果我在对话框中加载页面则它不会打开...
...帮助
答案 0 :(得分:0)
从您更新的代码中,您看到的链接看起来就像您正在加载ajax调用的div内部。如果是这种情况,那么加载对话框的click事件只被绑定一次(在初始页面加载时)。当链接元素再次加载时(我假设它在加载的ajax响应中),它不再绑定点击事件。
要解决这个问题,你可以:
修改javascript以添加委托,以便即使页面(DOM)发生更改,click事件也会触发该类型的元素,如:
$("#thedialog").delegate("#link", "click", function () {
$('#thedialog').dialog('open');
return false;
});
如果对话框本身中存在#link元素,则选项2可能会产生一些奇怪的结果 - 如果这样可以解决问题,我会选择第一个选项。
<强>更新强>
以上内容适用于我的浏览器,但为了确保我尝试使用以下代码并查看它是否有效,可能是jquery / jquery ui的版本不是最新的或者不是最新的,我猜
<html>
<head>
<title>Test dialog page</title>
<link href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet"
type="text/css" />
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#thedialog").dialog({
autoOpen: false,
modal: true,
position: 'center',
width: 900,
height: 300,
open: function () {
$('#thedialog').load("AddDetails.aspx");
}
});
$('#link').click(function () {
$('#thedialog').dialog('open');
});
});
</script>
</head>
<body>
<div id="thedialog" style="display: none; overflow: hidden">
</div>
<span id="link" style="color: #88b807; cursor: pointer; display: block">Create</span>
</body>
</html>
我会尝试/推荐的其他事项: