如何在不关闭jquery对话框的情况下在后台重新加载父页面

时间:2012-01-19 05:01:20

标签: jquery dialog

我有一个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;

        }  
    });  

});

1 个答案:

答案 0 :(得分:-1)

不幸的是,由于jQuery UI对话框的工作方式,你不得不提出比告诉页面重新加载更聪明的东西。

与传统弹出窗口不同,它们实际上只是动态地添加到页面中的绝对定位<div>。因此,重新加载页面将删除该标记,并且必须重新添加(即打开对话框的调用必须在Javascript中进行)。

因此,最简单的(但最糟糕的用户体验)方法可能是序列化对话框的当前状态,将其保存到cookie,重新加载页面和页面加载,检查该cookie,如果找到它,重新打开对话框并恢复以前的状态,然后删除cookie。显然,这将在页面重新加载时创建“闪存”,并且不会快速或有效。

如果它必须是无缝的,那么您将需要提供一种更新页面其余部分的方法,而不会影响jQuery对话框的标记。