我有一个jquery对话框,用于编辑和更新列表中的某个记录。
当单击某个记录'并且jquery对话框打开时,我希望在后台'父窗口'重新加载而不关闭jquery对话框,所以当我关闭对话框时,列表将被更新。我尝试在打开一个新对话框之前放置window.location.reload();
但它似乎不起作用。相反,它刷新整个父页面并关闭对话框..
有任何想法吗?..
这是我的代码的一部分..
$('.pricesave').live('click', function() {
var id = $(this).attr('rel');
$("#addprice_1").dialog('close');
var qq = $("#mainForm2").serialize();
$.ajax({
type: "POST",
url: "partprice2.php",
data: qq,
success: function(){
window.location.reload();
$("#edit_number").data('num_id', id).dialog('close').dialog('open');
return false;
}
});
});
答案 0 :(得分:-1)
不幸的是,由于jQuery UI对话框的工作方式,你不得不提出比告诉页面重新加载更聪明的东西。
与传统弹出窗口不同,它们实际上只是动态地添加到页面中的绝对定位<div>
。因此,重新加载页面将删除该标记,并且必须重新添加(即打开对话框的调用必须在Javascript中进行)。
因此,最简单的(但最糟糕的用户体验)方法可能是序列化对话框的当前状态,将其保存到cookie,重新加载页面和页面加载,检查该cookie,如果找到它,重新打开对话框并恢复以前的状态,然后删除cookie。显然,这将在页面重新加载时创建“闪存”,并且不会快速或有效。
如果它必须是无缝的,那么您将需要提供一种更新页面其余部分的方法,而不会影响jQuery对话框的标记。