在对话框中加载aspx页面时,JQuery对话框未再次打开
我已经检查了类似的问题,但没有一个给我一个解决方案。。。这就是为什么发布这个问题。。所以请给我一个解决方案,而不是投票否决 我正在对话框中加载一个aspx页面。它第一次运行正常,但如果我再次关闭并重新打开它。。它没有被打开 这是我处理对话框脚本的default.aspx在对话框中加载aspx页面时,JQuery对话框未再次打开,jquery,asp.net,html,jquery-ui,jquery-dialog,Jquery,Asp.net,Html,Jquery Ui,Jquery Dialog,我已经检查了类似的问题,但没有一个给我一个解决方案。。。这就是为什么发布这个问题。。所以请给我一个解决方案,而不是投票否决 我正在对话框中加载一个aspx页面。它第一次运行正常,但如果我再次关闭并重新打开它。。它没有被打开 这是我处理对话框脚本的default.aspx <html> <head> <script type="text/javascript"> $(d
<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>
$(文档).ready(函数(){
$(“#对话框”)。对话框({
自动打开:错误,
莫代尔:是的,
位置:'中间',
宽度:900,
打开:函数(){
$('thedialog').load(“AddDetails.aspx”);
}
});
$(“#链接”)。单击(函数(){
$('thedialog')。对话框('open');
});
});
创造
这是我的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>
专用空间名称
私人空间描述
如果我只是简单地打开一个对话框,它将被打开,但如果我在对话框中加载一个页面,它将不会打开,而不是加载一个页面
帮助…从更新的代码来看,您单击的链接似乎位于加载ajax调用的div中。如果是这种情况,则加载对话框的单击事件仅绑定一次(在初始页面加载时)。当再次加载link元素时(我假设它在加载的ajax响应中),它不再绑定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>
测试对话框页面
$(文档).ready(函数(){
$(“#对话框”)。对话框({
自动打开:错误,
莫代尔:是的,
位置:'中间',
宽度:900,
身高:300,
打开:函数(){
$('thedialog').load(“AddDetails.aspx”);
}
});
$(“#链接”)。单击(函数(){
$('thedialog')。对话框('open');
});
});
创造
我想尝试/推荐的其他东西:
- 从AddDetails.aspx中删除包装正文标记(除非您 以非ajax方式使用它)。还要确保它没有引用母版页
- 确保页面上没有正在运行的其他javascript-否 实例的AddDetails页面中引用的脚本
- 如果您仍然存在问题,请尝试在Firebug或其他浏览器中的等效浏览器中查看控制台-是否报告了错误,或者是否在无声中失败