我正在尝试使用AJAX打开jQuery对话框。对话框的内容从查询字符串加载,并包含表单标记内的服务器控件。
我有一个GridView,其中每行中的链接产生对话框。
第一次,对话框加载正常,但随后我需要在页面上打开另一个对话框,然后第一个对话框将加载。我随后无法打开相同的对话框。在Firebug中检查DOM会在页面末尾显示多个“容器”。我有一个GridView,其中一列包含一个链接和一个空div。我已经简化了控件ID,因为它们被ASP.NET破坏了,但这是我的代码:
$('#linkId').click(function() {
$('#panelId').dialog({
autoOpen: true,
height: 600,
width: 680,
modal: true,
show: 'blind',
hide: 'blind',
title: 'More Information',
open: function () {
$(this).load(url).parent().appendTo("form");
},
close(){
// I've also tried using these (not both at the same time)
$(this).dialog('destroy').remove();// dialog never opens again
$(this).dialog('disable').remove();// dialog never opens again
}
});
return false;
});
});
我已经尝试将包含的函数添加到close事件中,但是我得到了相同的效果。否则,当对话框最终打开时,一切都运行正常(尽管页面末尾有多个对话框容器)。
答案 0 :(得分:3)
来自jq dialog api documentation:
“如果要重用对话框,最简单的方法是禁用 “自动打开”选项:$(foo).dialog({autoOpen:false})并打开 它与$(foo).dialog('open')。要关闭它,请使用 $(富).dialog( '关闭')。使用完整演示进行更深入的解释 可在the Nemikor blog“
上找到