jquery dialog 缓存问题

来源:互联网 发布:ps软件收费吗 编辑:程序博客网 时间:2024/05/22 03:11

参考一篇帖子解决了:http://blog.csdn.net/flutterkey/article/details/9114723

场景:页面中有编辑的按钮,点击弹框显示,但是关闭之后,再打开每次都会显示之前的数据。


在应用中通常是自建一个Div,通过Div的id绑定Dialog,而jquery会把这个自建的div清除,内容全部放到Dialog的Div中,Dialog的Div默认是建在body中,这对于使用ajax重写页面代码的应用产生了很多冲突,如果使用上面的方法你的Dialog将只能弹出一次,关闭的时候就会被remove。查了一下替代的解决方法,可以将自建的div先clone,在close时将克隆的div重新append到页面上。


             // 清除每次dialog缓存            // 1.自建div并clone            var dialogParent = $('#createModelTemplate').parent();              var dialogOwn =$('#createModelTemplate').clone();              dialogOwn.hide();             $('#createModelTemplate').dialog({                title : dialogTitle(id),                modal : true,                width : 600,                height : 550,                buttons : [ {                    text : dialogSave(id),                    click : function() {                        $.ajax({                            type : 'post',                            url : '/workflow/model/save',                            dataType : 'json',                            data : {                                "modelId" : id,                            },                            success : function(data) {                                                            },                        });                    },                }                ],                close: function () {                      // 2.在close时将克隆的div重新append到页面上                    dialogOwn.appendTo(dialogParent);                     // 3.清除缓存 连同Dialog中的DIV也同时清除                    $(this).dialog("destroy").remove();                   }            });



原创粉丝点击