jquery dialog 缓存问题

参考一篇帖子解决了: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();   
                }
            });



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值